Changeset 2006
- Timestamp:
- 06/22/09 19:31:26 (3 years ago)
- Location:
- molgenis3_3/src/org/molgenis
- Files:
-
- 6 edited
-
framework/data/CustomQuery.java (modified) (7 diffs)
-
framework/data/jdbc/JDBCDatabase.java (modified) (1 diff)
-
generators/data/JDBCMetaDatabaseGen.java.ftl (modified) (1 diff)
-
generators/doc/ClassDocGen.java.ftl (modified) (2 diffs)
-
model/syntax/Entity.java (modified) (4 diffs)
-
model/syntax/Model.java (modified) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
molgenis3_3/src/org/molgenis/framework/data/CustomQuery.java
r1987 r2006 31 31 Field field = getDatabase().getMetaData().findField(f); 32 32 if (field == null) throw new DatabaseException("couldn't find " + f); 33 this.fields.add( getDatabase().getMetaData().findField(f));33 this.fields.add(field); 34 34 } 35 35 catch (MolgenisModelException e) … … 48 48 try 49 49 { 50 List<QueryRule> rules = Arrays.asList(super.getRules()); 51 String sql = toFindSql(rules); 52 return ((JDBCDatabase) getDatabase()).sql(sql, (QueryRule[])rules.toArray()); 50 String sql = toFindSql(super.getRules()); 51 return ((JDBCDatabase) getDatabase()).sql(sql, super.getRules()); 53 52 } 54 53 catch (MolgenisModelException e) 55 54 { 56 // TODO Auto-generated catch block57 55 e.printStackTrace(); 58 56 throw new DatabaseException(e); … … 73 71 } 74 72 75 public String toFindSql( List<QueryRule> rules) throws DatabaseException, MolgenisModelException73 public String toFindSql(QueryRule... ruleArray) throws DatabaseException, MolgenisModelException 76 74 { 77 75 if (fields.size() == 0) throw new DatabaseException("no fields selected"); 78 76 List<Entity> entities = new ArrayList<Entity>(); 77 List<QueryRule> rules = new ArrayList<QueryRule>(); 78 rules.addAll(Arrays.asList(ruleArray)); 79 79 80 80 // find the entities … … 92 92 for (QueryJoinRule jr : findShortestJoinPath(ed1, ed2)) 93 93 { 94 if (!rules.contains(jr)) rules.add(jr); 94 if (!rules.contains(jr)) 95 { 96 rules.add(jr); 97 } 95 98 } 96 99 … … 176 179 if (r instanceof QueryJoinRule) 177 180 { 178 QueryJoinRule edge = (QueryJoinRule) r;181 QueryJoinRule edge = (QueryJoinRule) r; 179 182 Logger.getLogger("HAAT").debug("comparing " + edge.getA() + " " + edge.getB()); 180 183 // direct? … … 209 212 return path; 210 213 } 214 // cyclic path are not supported 215 else if (fd.getXRefEntity().equals(e2.getName())) 216 { 217 ; 218 } 211 219 else 212 220 // indirect path … … 250 258 return path; 251 259 } 260 // cyclic path 261 else if (fd.getXRefEntity().equals(e1.getName())) 262 { 263 ; 264 } 252 265 // indirect path 253 266 else -
molgenis3_3/src/org/molgenis/framework/data/jdbc/JDBCDatabase.java
r2000 r2006 208 208 catch (Exception e) 209 209 { 210 e.printStackTrace(); 210 211 throw new DatabaseException(e); 211 212 } -
molgenis3_3/src/org/molgenis/generators/data/JDBCMetaDatabaseGen.java.ftl
r1987 r2006 48 48 { 49 49 <#list model.entities as entity> 50 Entity ${name(entity)}_entity = new Entity("${entity.name}",this.getDatabase()); 51 ${name(entity)}_entity.setImplements(new String[]{${csv(entity.implements)}}); 50 Entity ${name(entity)}_entity = new Entity("${entity.name}",this.getDatabase());<#if entity.hasImplements()> 51 ${name(entity)}_entity.setImplements(new String[]{${csv(entity.implements)}});</#if><#if entity.hasAncestor()> 52 ${name(entity)}_entity.setParents(new String[]{"${entity.getAncestor().name}"});</#if> 52 53 <#list entity.fields as field> 53 54 Field ${name(entity)}_${name(field)}_field = new Field(${name(entity)}_entity, "${field.name}", Field.Type.getType("${field.type}")); 54 55 <#if field.type == "xref" || field.type == "mref">${name(entity)}_${name(field)}_field.setXRefVariables("${field.XRefEntity}", "${field.XRefField}","${field.XRefLabelString}");</#if> 55 56 ${name(entity)}_entity.addField(${name(entity)}_${name(field)}_field); 57 </#list> 58 <#list entity.keys as key> 59 ${name(entity)}_entity.addKey(new String[]{${csv(key.fields)}},<#if key.isSubclass()>true<#else>false</#if>,""); 56 60 </#list> 57 61 -
molgenis3_3/src/org/molgenis/generators/doc/ClassDocGen.java.ftl
r1975 r2006 43 43 <b>${field.name}</b>: ${field.type} 44 44 (<#if field.nillable == false>required<#else>optional</#if>) 45 <#if field.entity.name != entity.name><i>inherited from ${field.entity.name}</i></#if>46 45 </td> 47 46 </tr> … … 66 65 <#elseif field.type=="mref"> 67 66 ${field.getXRefEntity()} (<#if field.nillable>0<#else>1</#if>..n)</#if> 68 <#if field.entity.name != entity.name><i>inherited from ${field.entity.name}</i></#if>69 67 </td> 70 68 </tr> -
molgenis3_3/src/org/molgenis/model/syntax/Entity.java
r1988 r2006 404 404 return implements_entities; 405 405 } 406 407 public void setImplements(String ...implements_parents)406 407 public void setImplements(String... implements_parents) 408 408 { 409 409 this.setImplements(new Vector<String>(Arrays.asList(implements_parents))); … … 570 570 all_fields.add(f); 571 571 } 572 //else572 else 573 573 // replace with local variant 574 //{575 //all_fields.set(all_fields.indexOf(f), f);576 //}574 { 575 all_fields.set(all_fields.indexOf(f), f); 576 } 577 577 } 578 578 … … 842 842 logger.debug("testing: " + field.getName()); 843 843 844 if (name. toLowerCase().equals(field.getName().toLowerCase()))844 if (name.equalsIgnoreCase(field.getName())) 845 845 { 846 846 return field; … … 1163 1163 return this.getKey(0).getFields().get(0); 1164 1164 } 1165 1166 public void setParents(String[] parents) 1167 { 1168 Vector<String> result = new Vector<String>(); 1169 for (String parent : parents) 1170 result.add(parent); 1171 this.setParents(result); 1172 } 1173 1174 public void addKey(String[] fieldnames, boolean subclass, String description) throws MolgenisModelException 1175 { 1176 Vector<Field> fields = new Vector<Field>(); 1177 for (String field : fieldnames) 1178 { 1179 fields.add(this.getAllField(field)); 1180 } 1181 this.addKey(fields, subclass, description); 1182 } 1165 1183 } -
molgenis3_3/src/org/molgenis/model/syntax/Model.java
r1975 r2006 225 225 226 226 /** 227 * @throws MolgenisModelException 227 * @throws MolgenisModelException 228 228 * 229 229 */ … … 232 232 for (DBSchema element : database.getChildren()) 233 233 { 234 if (element.getClass().equals(Entity.class) && element.getName(). toLowerCase().equals(name.toLowerCase()))234 if (element.getClass().equals(Entity.class) && element.getName().equalsIgnoreCase(name)) 235 235 { 236 236 return (Entity) element; … … 238 238 } 239 239 // throw error if cannot find it (don't return null). 240 //throw new MolgenisLanguageException("couldn't find entity '"+name+"'"); 240 // throw new 241 // MolgenisLanguageException("couldn't find entity '"+name+"'"); 241 242 // throw new RuntimeException(); 242 243 // System.exit(1); … … 307 308 * 308 309 */ 309 // public static void createSystemTables(Model model) 310 // { 311 // Field field; 312 // Entity entity; 313 // 314 // try 315 // { 316 // FileMetaInfo fileinfo = model.getFileInfo(); 317 // UserMetaInfo userinfo = model.getUserInfo(); 318 // RoleMetaInfo roleinfo = model.getRoleInfo(); 319 // EntityMetaInfo entityinfo = model.getEntityInfo(); 320 // ScreenMetaInfo screeninfo = model.getScreenInfo(); 321 // 322 // // files 323 // entity = new Entity(fileinfo.getEntity(), "", model.getDatabase(), true); 324 // 325 // field = new Field(entity, Field.Type.INT, fileinfo.getColumnNameID(), "", true, false, false, ""); 326 // entity.addField(field); 327 // entity.addKey(field,null); 328 // 329 // // Vector<Field> constraint_name = new Vector<Field>(); 330 // 331 // field = new Field(entity, Field.Type.STRING, fileinfo.getColumnNameFilename(), "", false, true, false, ""); 332 // field.setVarCharLength(1024); 333 // entity.addField(field); 334 // // constraint_name.add(field); 335 // 336 // field = new Field(entity, Field.Type.STRING, fileinfo.getColumnNameEntityOwner(), "", false, true, false, 337 // ""); 338 // field.setVarCharLength(1024); 339 // entity.addField(field); 340 // // constraint_name.add(field); 341 // 342 // // entity.addKey(constraint_name); 343 // 344 // field = new Field(entity, Field.Type.STRING, fileinfo.getColumnNameLocalFileName(), "", false, true, false, 345 // ""); 346 // field.setVarCharLength(1024); 347 // entity.addField(field); 348 // 349 // field = new Field(entity, Field.Type.STRING, fileinfo.getColumnNameMime(), "", false, true, false, ""); 350 // field.setVarCharLength(255); 351 // entity.addField(field); 352 // 353 // // users 354 // entity = new Entity(userinfo.getEntity(), "", model.getDatabase(), true); 355 // 356 // field = new Field(entity, Field.Type.INT, userinfo.getColumnNameID(), "", true, false, false, ""); 357 // entity.addField(field); 358 // entity.addKey(field); 359 // 360 // field = new Field(entity, Field.Type.STRING, userinfo.getColumnNameInitials(), "", false, true, false, ""); 361 // field.setVarCharLength(32); 362 // entity.addField(field); 363 // 364 // field = new Field(entity, Field.Type.STRING, userinfo.getColumnNameLastName(), "", false, true, false, ""); 365 // field.setVarCharLength(32); 366 // entity.addField(field); 367 // 368 // // name can only be unique if not null! 369 // field = new Field(entity, Field.Type.STRING, userinfo.getColumnNameUsername(), "", false, false, false, ""); 370 // field.setVarCharLength(32); 371 // entity.addField(field); 372 // entity.addKey(field); // make the username unique 373 // 374 // field = new Field(entity, Field.Type.STRING, userinfo.getColumnNamePassword(), "", false, true, false, ""); 375 // field.setVarCharLength(32); 376 // entity.addField(field); 377 // 378 // field = new Field(entity, Field.Type.XREF_MULTIPLE, userinfo.getColumnNameRoles(), "", false, true, false, 379 // ""); 380 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), roleinfo.getColumnNameRoleName()); 381 // // field.setXRefLinkTable(""); 382 // entity.addField(field); 383 // 384 // // roles 385 // entity = new Entity(roleinfo.getEntity(), "", model.getDatabase(), true); 386 // 387 // field = new Field(entity, Field.Type.INT, roleinfo.getColumnNameID(), "", true, false, false, ""); 388 // entity.addField(field); 389 // entity.addKey(field); 390 // 391 // // name can only be unique if not null! 392 // field = new Field(entity, Field.Type.STRING, roleinfo.getColumnNameRoleName(), "", false, false, false, ""); 393 // field.setVarCharLength(255); 394 // entity.addField(field); 395 // entity.addKey(field); 396 // 397 // // entities 398 // entity = new Entity(entityinfo.getEntity(), "", model.getDatabase(), true); 399 // 400 // field = new Field(entity, Field.Type.INT, entityinfo.getColumnNameID(), "", true, false, false, ""); 401 // entity.addField(field); 402 // entity.addKey(field); 403 // 404 // // name can only be unique if not null! 405 // field = new Field(entity, Field.Type.STRING, entityinfo.getColumnNameName(), "", false, false, false, ""); 406 // field.setVarCharLength(255); 407 // entity.addField(field); 408 // entity.addKey(field); 409 // 410 // field = new Field(entity, Field.Type.XREF_MULTIPLE, entityinfo.getColumnNameRoles(), "", false, true, 411 // false, ""); 412 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), roleinfo.getColumnNameRoleName()); 413 // // field.setXRefLinkTable(""); 414 // entity.addField(field); 415 // 416 // // screens 417 // entity = new Entity(screeninfo.getEntity(), "", model.getDatabase(), true); 418 // 419 // field = new Field(entity, Field.Type.INT, screeninfo.getColumnNameID(), "", true, false, false, ""); 420 // entity.addField(field); 421 // entity.addKey(field); 422 // 423 // field = new Field(entity, Field.Type.STRING, screeninfo.getColumnNameName(), "", false, true, false, ""); 424 // field.setVarCharLength(255); 425 // entity.addField(field); 426 // // entity.addKey(field); 427 // 428 // field = new Field(entity, Field.Type.XREF_MULTIPLE, screeninfo.getColumnNameRoles(), "", false, true, 429 // false, ""); 430 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), roleinfo.getColumnNameRoleName()); 431 // // field.setXRefLinkTable(""); 432 // entity.addField(field); 433 // } 434 // catch (Exception e) 435 // { 436 // } 437 // } 438 310 // public static void createSystemTables(Model model) 311 // { 312 // Field field; 313 // Entity entity; 314 // 315 // try 316 // { 317 // FileMetaInfo fileinfo = model.getFileInfo(); 318 // UserMetaInfo userinfo = model.getUserInfo(); 319 // RoleMetaInfo roleinfo = model.getRoleInfo(); 320 // EntityMetaInfo entityinfo = model.getEntityInfo(); 321 // ScreenMetaInfo screeninfo = model.getScreenInfo(); 322 // 323 // // files 324 // entity = new Entity(fileinfo.getEntity(), "", model.getDatabase(), true); 325 // 326 // field = new Field(entity, Field.Type.INT, fileinfo.getColumnNameID(), "", 327 // true, false, false, ""); 328 // entity.addField(field); 329 // entity.addKey(field,null); 330 // 331 // // Vector<Field> constraint_name = new Vector<Field>(); 332 // 333 // field = new Field(entity, Field.Type.STRING, 334 // fileinfo.getColumnNameFilename(), "", false, true, false, ""); 335 // field.setVarCharLength(1024); 336 // entity.addField(field); 337 // // constraint_name.add(field); 338 // 339 // field = new Field(entity, Field.Type.STRING, 340 // fileinfo.getColumnNameEntityOwner(), "", false, true, false, 341 // ""); 342 // field.setVarCharLength(1024); 343 // entity.addField(field); 344 // // constraint_name.add(field); 345 // 346 // // entity.addKey(constraint_name); 347 // 348 // field = new Field(entity, Field.Type.STRING, 349 // fileinfo.getColumnNameLocalFileName(), "", false, true, false, 350 // ""); 351 // field.setVarCharLength(1024); 352 // entity.addField(field); 353 // 354 // field = new Field(entity, Field.Type.STRING, 355 // fileinfo.getColumnNameMime(), "", false, true, false, ""); 356 // field.setVarCharLength(255); 357 // entity.addField(field); 358 // 359 // // users 360 // entity = new Entity(userinfo.getEntity(), "", model.getDatabase(), true); 361 // 362 // field = new Field(entity, Field.Type.INT, userinfo.getColumnNameID(), "", 363 // true, false, false, ""); 364 // entity.addField(field); 365 // entity.addKey(field); 366 // 367 // field = new Field(entity, Field.Type.STRING, 368 // userinfo.getColumnNameInitials(), "", false, true, false, ""); 369 // field.setVarCharLength(32); 370 // entity.addField(field); 371 // 372 // field = new Field(entity, Field.Type.STRING, 373 // userinfo.getColumnNameLastName(), "", false, true, false, ""); 374 // field.setVarCharLength(32); 375 // entity.addField(field); 376 // 377 // // name can only be unique if not null! 378 // field = new Field(entity, Field.Type.STRING, 379 // userinfo.getColumnNameUsername(), "", false, false, false, ""); 380 // field.setVarCharLength(32); 381 // entity.addField(field); 382 // entity.addKey(field); // make the username unique 383 // 384 // field = new Field(entity, Field.Type.STRING, 385 // userinfo.getColumnNamePassword(), "", false, true, false, ""); 386 // field.setVarCharLength(32); 387 // entity.addField(field); 388 // 389 // field = new Field(entity, Field.Type.XREF_MULTIPLE, 390 // userinfo.getColumnNameRoles(), "", false, true, false, 391 // ""); 392 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), 393 // roleinfo.getColumnNameRoleName()); 394 // // field.setXRefLinkTable(""); 395 // entity.addField(field); 396 // 397 // // roles 398 // entity = new Entity(roleinfo.getEntity(), "", model.getDatabase(), true); 399 // 400 // field = new Field(entity, Field.Type.INT, roleinfo.getColumnNameID(), "", 401 // true, false, false, ""); 402 // entity.addField(field); 403 // entity.addKey(field); 404 // 405 // // name can only be unique if not null! 406 // field = new Field(entity, Field.Type.STRING, 407 // roleinfo.getColumnNameRoleName(), "", false, false, false, ""); 408 // field.setVarCharLength(255); 409 // entity.addField(field); 410 // entity.addKey(field); 411 // 412 // // entities 413 // entity = new Entity(entityinfo.getEntity(), "", model.getDatabase(), 414 // true); 415 // 416 // field = new Field(entity, Field.Type.INT, entityinfo.getColumnNameID(), 417 // "", true, false, false, ""); 418 // entity.addField(field); 419 // entity.addKey(field); 420 // 421 // // name can only be unique if not null! 422 // field = new Field(entity, Field.Type.STRING, 423 // entityinfo.getColumnNameName(), "", false, false, false, ""); 424 // field.setVarCharLength(255); 425 // entity.addField(field); 426 // entity.addKey(field); 427 // 428 // field = new Field(entity, Field.Type.XREF_MULTIPLE, 429 // entityinfo.getColumnNameRoles(), "", false, true, 430 // false, ""); 431 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), 432 // roleinfo.getColumnNameRoleName()); 433 // // field.setXRefLinkTable(""); 434 // entity.addField(field); 435 // 436 // // screens 437 // entity = new Entity(screeninfo.getEntity(), "", model.getDatabase(), 438 // true); 439 // 440 // field = new Field(entity, Field.Type.INT, screeninfo.getColumnNameID(), 441 // "", true, false, false, ""); 442 // entity.addField(field); 443 // entity.addKey(field); 444 // 445 // field = new Field(entity, Field.Type.STRING, 446 // screeninfo.getColumnNameName(), "", false, true, false, ""); 447 // field.setVarCharLength(255); 448 // entity.addField(field); 449 // // entity.addKey(field); 450 // 451 // field = new Field(entity, Field.Type.XREF_MULTIPLE, 452 // screeninfo.getColumnNameRoles(), "", false, true, 453 // false, ""); 454 // field.setXRefVariables(roleinfo.getEntity(), roleinfo.getColumnNameID(), 455 // roleinfo.getColumnNameRoleName()); 456 // // field.setXRefLinkTable(""); 457 // entity.addField(field); 458 // } 459 // catch (Exception e) 460 // { 461 // } 462 // } 439 463 public String toString() 440 464 { … … 495 519 496 520 // get entity 521 Field result = null; 497 522 if (entity != null) 498 523 { … … 500 525 try 501 526 { 502 // todo: make case insensitive?527 // todo: make case insensitive? 503 528 em = this.getEntity(entity); 504 529 } … … 509 534 510 535 // get field 511 re turnem.getAllField(field);536 result = em.getAllField(field); 512 537 } 513 538 else 514 539 { 515 540 int count = 0; 516 Field result = null;517 541 for (Entity em : getEntities()) 518 542 { 519 543 for (Field fm : em.getAllFields()) 520 544 { 521 if (fm.getName().equals (field))545 if (fm.getName().equalsIgnoreCase(field)) 522 546 { 523 547 result = fm; … … 528 552 } 529 553 } 530 if (result != null) 531 { 532 //logger.debug("guessed entity for field '"+field+"': '"+result.getEntityMetaData().getName()+"'"); 533 return result; 534 } 554 } 555 if (result != null) 556 { 557 return result; 558 } 559 else 560 { 535 561 throw new DatabaseException("field with name '" + f + " is unknown: "); 536 562 }
Note: See TracChangeset
for help on using the changeset viewer.