5 import freemarker.template.*;
7 public class EntityRelation {
11 public StorageObject storage;
14 public final static int TO_ONE = 1;
15 public final static int TO_MANY = 2;
19 * Kontruktor fuer EntityRelation
20 * @param fromId ist der Feldname in der ausgehenden Tabelle fuer die Relation
21 * @param toId ist der Feldname in der Zieltablle
22 * @param storage ist das StorageObject, ueber das der Zugriff auf die abhaengige
24 * @param type ist der Typ der EntityRelation (TO_ONE oder TO_MANY)
27 public EntityRelation(String fromId, String toId, StorageObject storage, int type) {
30 this.storage = storage;
35 * @return Liefert eine abhaengige Entity mit den verknuepften
36 * Entities, wenn es sich um eine TO_ONE Beziehung handelt, ansonsten
40 public Entity getOne(Entity entity) throws StorageObjectException {
42 return storage.selectById(entity.getValue(fromId));
48 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
49 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
53 public EntityList getMany(Entity entity) throws StorageObjectException{
55 return storage.selectByFieldValue(toId, entity.getValue(fromId));
61 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
62 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
66 public EntityList getMany(Entity entity, String order) throws StorageObjectException{
68 return storage.selectByWhereClause(toId+"="+entity.getValue(fromId), order,-1);
74 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
75 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
79 public EntityList getMany(Entity entity, String order, String whereClause) throws StorageObjectException{
81 return storage.selectByWhereClause(toId + "=" + entity.getValue(fromId) + " and " + whereClause, order,-1);
87 * @return The reference name of the related table.
90 public String getName() {
91 return "to" + storage.getTableName();