OSDN Git Service

e93e2c911c9529455808b4f68e1a5516a83da252
[ea2ddl/ea2ddl.git] / ea2ddl-dao / src / main / java / jp / sourceforge / ea2ddl / dao / allcommon / dbmeta / info / ReferrerInfo.java
1 package jp.sourceforge.ea2ddl.dao.allcommon.dbmeta.info;\r
2 \r
3 \r
4 import jp.sourceforge.ea2ddl.dao.allcommon.dbmeta.DBMeta;\r
5 \r
6 /**\r
7  * The class of referrer information.\r
8  * \r
9  * @author DBFlute(AutoGenerator)\r
10  */
11 @SuppressWarnings("unchecked")\r
12 public class ReferrerInfo implements RelationInfo {\r
13 \r
14     // ===================================================================================\r
15     //                                                                           Attribute\r
16     //                                                                           =========\r
17     protected String referrerPropertyName;\r
18     protected DBMeta localDBMeta;\r
19     protected DBMeta referrerDBMeta;\r
20     protected java.util.Map<ColumnInfo, ColumnInfo> localReferrerColumnInfoMap;\r
21     protected java.util.Map<ColumnInfo, ColumnInfo> referrerLocalColumnInfoMap;\r
22     protected boolean oneToOne;\r
23 \r
24     // ===================================================================================\r
25     //                                                                              Finder\r
26     //                                                                              ======\r
27     public ColumnInfo findLocalByReferrer(String referrerColumnDbName) {\r
28         final ColumnInfo keyColumnInfo = new ColumnInfo(referrerDBMeta, referrerColumnDbName);\r
29         final ColumnInfo resultColumnInfo = (ColumnInfo)referrerLocalColumnInfoMap.get(keyColumnInfo);\r
30         if (resultColumnInfo == null) {\r
31             String msg = "Not found by referrerColumnDbName in referrerLocalColumnInfoMap:";\r
32             msg = msg + " referrerColumnDbName=" + referrerColumnDbName + " referrerLocalColumnInfoMap=" + referrerLocalColumnInfoMap;\r
33             throw new IllegalArgumentException(msg);\r
34         }\r
35         return resultColumnInfo;\r
36     }\r
37 \r
38     public ColumnInfo findReferrerByLocal(String localColumnDbName) {\r
39         final ColumnInfo keyColumnInfo = new ColumnInfo(localDBMeta, localColumnDbName);\r
40         final ColumnInfo resultColumnInfo = (ColumnInfo)localReferrerColumnInfoMap.get(keyColumnInfo);\r
41         if (resultColumnInfo == null) {\r
42             String msg = "Not found by localColumnDbName in localReferrerColumnInfoMap:";\r
43             msg = msg + " localColumnDbName=" + localColumnDbName + " localReferrerColumnInfoMap=" + localReferrerColumnInfoMap;\r
44             throw new IllegalArgumentException(msg);\r
45         }\r
46         return resultColumnInfo;\r
47     }\r
48 \r
49     // ===================================================================================\r
50     //                                                                             Builder\r
51     //                                                                             =======\r
52     public String buildInitCapPropertyName() {\r
53         return initCap(this.referrerPropertyName);\r
54     }\r
55 \r
56     // ===================================================================================\r
57     //                                                                              Finder\r
58     //                                                                              ======\r
59     public java.lang.reflect.Method findSetter() {\r
60         return findMethod(localDBMeta.getEntityType(), "set" + buildInitCapPropertyName(), new Class[] { java.util.List.class });\r
61     }\r
62 \r
63     public java.lang.reflect.Method findGetter() {\r
64         return findMethod(localDBMeta.getEntityType(), "get" + buildInitCapPropertyName(), new Class[] {});\r
65     }\r
66 \r
67     // ===================================================================================\r
68     //                                                                           Implement\r
69     //                                                                           =========\r
70     public String getRelationPropertyName() {\r
71         return getReferrerPropertyName();\r
72     }\r
73 \r
74     public DBMeta getTargetDBMeta() {\r
75         return getReferrerDBMeta();\r
76     }\r
77 \r
78     public java.util.Map<ColumnInfo, ColumnInfo> getLocalTargetColumnInfoMap() {\r
79         return getLocalReferrerColumnInfoMap();\r
80     }\r
81 \r
82     public boolean isReferrer() {\r
83         return true;\r
84     }\r
85 \r
86     // ===================================================================================\r
87     //                                                                            Accessor\r
88     //                                                                            ========\r
89     public String getReferrerPropertyName() {\r
90         return referrerPropertyName;\r
91     }\r
92 \r
93     public void setReferrerPropertyName(String referrerPropertyName) {\r
94         this.referrerPropertyName = referrerPropertyName;\r
95     }\r
96 \r
97     public DBMeta getLocalDBMeta() {\r
98         return localDBMeta;\r
99     }\r
100 \r
101     public void setLocalDBMeta(DBMeta localDBMeta) {\r
102         this.localDBMeta = localDBMeta;\r
103     }\r
104 \r
105     public DBMeta getReferrerDBMeta() {\r
106         return referrerDBMeta;\r
107     }\r
108 \r
109     public void setReferrerDBMeta(DBMeta referrerDBMeta) {\r
110         this.referrerDBMeta = referrerDBMeta;\r
111     }\r
112 \r
113     public java.util.Map<ColumnInfo, ColumnInfo> getLocalReferrerColumnInfoMap() {\r
114         return localReferrerColumnInfoMap;\r
115     }\r
116 \r
117     public void setLocalReferrerColumnInfoMap(java.util.Map<ColumnInfo, ColumnInfo> localReferrerColumnInfoMap) {\r
118         this.localReferrerColumnInfoMap = localReferrerColumnInfoMap;\r
119         final java.util.Set keySet = localReferrerColumnInfoMap.keySet();\r
120         referrerLocalColumnInfoMap = new java.util.LinkedHashMap<ColumnInfo, ColumnInfo>();\r
121         for (final java.util.Iterator ite = keySet.iterator(); ite.hasNext(); ) {\r
122             final ColumnInfo key = (ColumnInfo)ite.next();\r
123             final ColumnInfo value = (ColumnInfo)localReferrerColumnInfoMap.get(key);\r
124             referrerLocalColumnInfoMap.put(value, key);\r
125         }\r
126     }\r
127 \r
128     public java.util.Map<ColumnInfo, ColumnInfo> getReferrerLocalColumnInfoMap() {\r
129         return referrerLocalColumnInfoMap;\r
130     }\r
131 \r
132     public boolean isOneToOne() {\r
133         return oneToOne;\r
134     }\r
135 \r
136     public void setOneToOne(boolean oneToOne) {\r
137         this.oneToOne = oneToOne;\r
138     }\r
139 \r
140     // ===================================================================================\r
141     //                                                                     Internal Helper\r
142     //                                                                     ===============\r
143     protected String initCap(final String name) {\r
144         return name.substring(0, 1).toUpperCase() + name.substring(1);\r
145     }\r
146 \r
147     protected java.lang.reflect.Method findMethod(Class clazz, String methodName, Class[] argTypes) {\r
148         try {\r
149             return clazz.getMethod(methodName, argTypes);\r
150         } catch (NoSuchMethodException ex) {\r
151             String msg = "class=" + clazz + " method=" + methodName + "-" + java.util.Arrays.asList(argTypes);\r
152             throw new RuntimeException(msg, ex);\r
153         }\r
154     }\r
155 }\r