1 package jp.sourceforge.ea2ddl.dao.allcommon.dbmeta.info;
\r
4 import jp.sourceforge.ea2ddl.dao.allcommon.dbmeta.DBMeta;
\r
7 * The class of referrer information.
\r
9 * @author DBFlute(AutoGenerator)
\r
11 @SuppressWarnings("unchecked")
\r
12 public class ReferrerInfo implements RelationInfo {
\r
14 // ===================================================================================
\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
24 // ===================================================================================
\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
35 return resultColumnInfo;
\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
46 return resultColumnInfo;
\r
49 // ===================================================================================
\r
52 public String buildInitCapPropertyName() {
\r
53 return initCap(this.referrerPropertyName);
\r
56 // ===================================================================================
\r
59 public java.lang.reflect.Method findSetter() {
\r
60 return findMethod(localDBMeta.getEntityType(), "set" + buildInitCapPropertyName(), new Class[] { java.util.List.class });
\r
63 public java.lang.reflect.Method findGetter() {
\r
64 return findMethod(localDBMeta.getEntityType(), "get" + buildInitCapPropertyName(), new Class[] {});
\r
67 // ===================================================================================
\r
70 public String getRelationPropertyName() {
\r
71 return getReferrerPropertyName();
\r
74 public DBMeta getTargetDBMeta() {
\r
75 return getReferrerDBMeta();
\r
78 public java.util.Map<ColumnInfo, ColumnInfo> getLocalTargetColumnInfoMap() {
\r
79 return getLocalReferrerColumnInfoMap();
\r
82 public boolean isReferrer() {
\r
86 // ===================================================================================
\r
89 public String getReferrerPropertyName() {
\r
90 return referrerPropertyName;
\r
93 public void setReferrerPropertyName(String referrerPropertyName) {
\r
94 this.referrerPropertyName = referrerPropertyName;
\r
97 public DBMeta getLocalDBMeta() {
\r
101 public void setLocalDBMeta(DBMeta localDBMeta) {
\r
102 this.localDBMeta = localDBMeta;
\r
105 public DBMeta getReferrerDBMeta() {
\r
106 return referrerDBMeta;
\r
109 public void setReferrerDBMeta(DBMeta referrerDBMeta) {
\r
110 this.referrerDBMeta = referrerDBMeta;
\r
113 public java.util.Map<ColumnInfo, ColumnInfo> getLocalReferrerColumnInfoMap() {
\r
114 return localReferrerColumnInfoMap;
\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
128 public java.util.Map<ColumnInfo, ColumnInfo> getReferrerLocalColumnInfoMap() {
\r
129 return referrerLocalColumnInfoMap;
\r
132 public boolean isOneToOne() {
\r
136 public void setOneToOne(boolean oneToOne) {
\r
137 this.oneToOne = oneToOne;
\r
140 // ===================================================================================
\r
143 protected String initCap(final String name) {
\r
144 return name.substring(0, 1).toUpperCase() + name.substring(1);
\r
147 protected java.lang.reflect.Method findMethod(Class clazz, String methodName, Class[] argTypes) {
\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