OSDN Git Service

DBFlute-0.9.3に更新
[ea2ddl/ea2ddl.git] / ea2ddl-gen / dbflute / templates / om / csharp / allcommon / cbean / FetchNarrowingBeanContext.vmnet
1 \r
2 using System;\r
3 using System.Collections;\r
4 using System.Reflection;\r
5 using System.Text;\r
6 using System.Threading;\r
7 \r
8 namespace ${glPackageBaseCommonCBean} {\r
9 \r
10 /**\r
11  * FetchNarrowing-Bean context. (referring to s2pager)\r
12  * \r
13  * @author ${database.ClassAuthor}\r
14  */\r
15     public static class ${glFetchNarrowingBeanContextName} {\r
16 \r
17         /** The thread-local for this. */\r
18         private static LocalDataStoreSlot _fetchNarrowingBeanSlot = Thread.AllocateDataSlot();\r
19 \r
20         /**\r
21          * Get fetch-narrowing-bean context on thread.\r
22          * \r
23          * @return FetchNarrowing-bean. (Nullable)\r
24          */\r
25         public static ${glFetchNarrowingBeanInterfaceName} GetFetchNarrowingBeanOnThread() {\r
26             return (${glFetchNarrowingBeanInterfaceName})Thread.GetData(_fetchNarrowingBeanSlot);\r
27         }\r
28 \r
29         /**\r
30          * Set fetch-narrowing-bean context on thread.\r
31          * \r
32          * @param ${glAttachedCBArgsVariableName} FetchNarrowing-bean. (NotNull)\r
33          */\r
34         public static void SetFetchNarrowingBeanOnThread(${glFetchNarrowingBeanInterfaceName} ${glAttachedCBArgsVariableName}) {\r
35             if (${glAttachedCBArgsVariableName} == null) {\r
36                 String msg = "The argument[${glAttachedCBArgsVariableName}] must not be null.";\r
37                 throw new ArgumentNullException(msg);\r
38             }\r
39             Thread.SetData(_fetchNarrowingBeanSlot, ${glAttachedCBArgsVariableName});\r
40         }\r
41 \r
42         /**\r
43          * Clear fetch-narrowing-bean context on thread.\r
44          */\r
45         public static void ClearFetchNarrowingBeanOnThread() {\r
46             Thread.SetData(_fetchNarrowingBeanSlot, null);\r
47         }\r
48 \r
49         /**\r
50          * Is existing fetch-narrowing-bean context on thread?\r
51          * \r
52          * @return Determination.\r
53          */\r
54         public static bool IsExistFetchNarrowingBeanOnThread() {\r
55             return (Thread.GetData(_fetchNarrowingBeanSlot) != null);\r
56         }\r
57 \r
58         /**\r
59          * Is the argument fetch-narrowing-bean?\r
60          * \r
61          * @param dtoInstance Dto instance.\r
62          * @return Determination.\r
63          */\r
64         public static bool IsTheArgumentFetchNarrowingBean(Object dtoInstance) {\r
65             if (dtoInstance is ${glFetchNarrowingBeanInterfaceName}) {\r
66                 return true;\r
67             } else {\r
68                 return false;\r
69             }\r
70         }\r
71 \r
72         /**\r
73          * Is the type fetch-narrowing-bean?\r
74          * \r
75          * @param dtoClass DtoClass.\r
76          * @return Determination.\r
77          */\r
78         public static bool IsTheTypeFetchNarrowingBean(Type dtoType) {\r
79             if (typeof(${glFetchNarrowingBeanInterfaceName}).IsAssignableFrom(dtoType)) {\r
80                 return true;\r
81             } else {\r
82                 return false;\r
83             }\r
84         }\r
85     }\r
86 }\r