1 5 package xdoclet.modules.borland.bes.ejb; 6 7 import java.util.*; 8 9 import xjavadoc.*; 10 import xdoclet.XDocletException; 11 import xdoclet.modules.ejb.dd.RelationTagsHandler; 12 13 21 public class BorlandRelationTagsHandler extends RelationTagsHandler 22 { 23 24 private final static String BES_RELATION = "bes.relation"; 25 26 33 public String leftTableName() throws XDocletException 34 { 35 String leftTableName = 37 currentRelation.getLeftMethod().getDoc().getTagAttributeValue( 38 BES_RELATION, 39 "left-table-name", 40 false); 41 42 return leftTableName; 43 } 44 45 52 public String defaultLeftTableName() throws XDocletException 53 { 54 ; 55 56 XClass clazz = currentRelation.getLeft(); 57 XTag persistenceTag = clazz.getDoc().getTag("ejb.persistence"); 58 59 if (persistenceTag != null) { 60 String tableName = persistenceTag.getAttributeValue("table-name"); 61 62 return tableName; 63 } 64 return "??"; 65 } 66 67 74 public void ifHasLeftTableName(String template) throws XDocletException 75 { 76 if (leftTableName() != null) { 77 generate(template); 78 } 79 } 80 81 88 public void ifDoesntHaveLeftTableName(String template) 89 throws XDocletException 90 { 91 if (leftTableName() == null) { 92 generate(template); 93 } 94 } 95 96 103 public String leftColumnName() throws XDocletException 104 { 105 106 String leftColumnName = 107 currentRelation.getLeftMethod().getDoc().getTagAttributeValue( 108 BES_RELATION, 109 "left-column-name", 110 false); 111 112 return leftColumnName; 113 } 114 115 122 public void ifHasLeftColumnName(String template) throws XDocletException 123 { 124 if (leftColumnName() != null) { 125 generate(template); 126 } 127 } 128 129 136 public void ifDoesntHaveLeftColumnName(String template) 137 throws XDocletException 138 { 139 if (leftColumnName() == null) { 140 generate(template); 141 } 142 } 143 144 151 public String defaultLeftColumnName() throws XDocletException 152 { 153 String defaultLeftColumnName = 155 currentRelation.getLeftMethod().getDoc().getTagAttributeValue( 156 "ejb.persistence", 157 "column-name", 158 false); 159 160 return defaultLeftColumnName; 161 } 162 163 170 public String rightTableName() throws XDocletException 171 { 172 173 String rightTableName = 174 currentRelation.getLeftMethod().getDoc().getTagAttributeValue( 175 BES_RELATION, 176 "right-table-name", 177 false); 178 179 return rightTableName; 180 } 181 182 189 public String defaultRightTableName() throws XDocletException 190 { 191 192 Collection classes = getXJavaDoc().getSourceClasses(); 193 194 for (Iterator i = classes.iterator(); i.hasNext(); ) { 195 XClass clazz = (XClass) i.next(); 196 197 XTag ejbBeanTag = clazz.getDoc().getTag("ejb.bean"); 198 199 if (ejbBeanTag != null) { 200 String name = ejbBeanTag.getAttributeValue("name"); 201 202 if ( 203 name != null 204 && 205 name.equals(rightEJBName()) 206 ) { 207 XTag persistenceTag = clazz.getDoc().getTag("ejb.persistence"); 208 209 if (persistenceTag != null) { 210 String tableName = persistenceTag.getAttributeValue("table-name"); 211 212 return tableName; 213 } 214 else { 215 throw new XDocletException(name + " Bean found, but it it's not having '@ejb.persistence table-name' tag"); 216 } 217 218 } 219 220 } 221 } 222 throw new XDocletException("Cannot resolve defaultRightTableName. Probably '@ejb.persistence table-name' tag is not existing in right side bean"); 223 } 224 225 226 233 public void ifHasRightTableName(String template) 234 throws XDocletException 235 { 236 if (rightTableName() != null) { 237 generate(template); 238 } 239 } 240 241 248 public void ifDoesntHaveRightTableName(String template) 249 throws XDocletException 250 { 251 if (rightTableName() == null) { 252 generate(template); 253 } 254 } 255 256 263 public String rightColumnName() throws XDocletException 264 { 265 String rightColumnName = 267 currentRelation.getLeftMethod() 268 .getDoc() 269 .getTagAttributeValue( 270 BES_RELATION, 271 "right-column-name", 272 false); 273 274 return rightColumnName; 275 } 276 277 284 public String defaultRightColumnName() throws XDocletException 285 { 286 Collection classes = getXJavaDoc().getSourceClasses(); 287 288 for (Iterator i = classes.iterator(); i.hasNext(); ) { 289 XClass clazz = (XClass) i.next(); 290 291 XTag ejbBeanTag = clazz.getDoc().getTag("ejb.bean"); 292 293 if (ejbBeanTag != null) { 294 String name = ejbBeanTag.getAttributeValue("name"); 295 296 if ( 297 name != null 298 && 299 name.equals(rightEJBName()) 300 ) { 301 XTag persistenceTag = clazz.getDoc().getTag("ejb.bean"); 302 303 if (persistenceTag != null) { 304 String tableName = persistenceTag.getAttributeValue("primkey-field"); 305 306 return tableName; 307 } 308 else { 309 throw new XDocletException("Bean found, but does not have '@ejb.bean primkey-field' tag"); 310 } 311 312 } 313 314 } 315 } 316 throw new XDocletException("Cannot resolve deafultRightColumnNam. Probably '@ejb.bean primkey-field' tag is not existing in right size bean"); 317 } 318 319 326 public void ifHasRightColumnName(String template) 327 throws XDocletException 328 { 329 if (rightColumnName() != null) { 330 generate(template); 331 } 332 } 333 334 341 public void ifDoesntHaveRightColumnName(String template) 342 throws XDocletException 343 { 344 if (rightColumnName() == null) { 345 generate(template); 346 } 347 } 348 349 } 350 | Popular Tags |