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 ein freemarker.template.SimpleHash mit den verknuepften
49 * Entities, wenn es sich um eine TO_ONE Beziehung handelt, ansonsten
53 public SimpleHash getOneAsSimpleHash(Entity entity) throws StorageObjectException {
55 Entity returnEntity = getOne(entity);
56 if (returnEntity!=null) return HTMLTemplateProcessor.makeSimpleHash(returnEntity);
62 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
63 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
67 public EntityList getMany(Entity entity) throws StorageObjectException{
69 return storage.selectByFieldValue(toId, entity.getValue(fromId));
75 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
76 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
80 public EntityList getMany(Entity entity, String order) throws StorageObjectException{
82 return storage.selectByWhereClause(toId+"="+entity.getValue(fromId), order,-1);
88 * @return Liefert eine freemarker.template.SimpleList mit den verknuepften
89 * Entities, wenn es sich um eine TO_MANY Liste handelt, ansonsten
93 public EntityList getMany(Entity entity, String order, String whereClause) throws StorageObjectException{
95 return storage.selectByWhereClause(toId + "=" + entity.getValue(fromId) + " and " + whereClause, order,-1);
101 * @return Liefert den Referenznamen der abhaengigen Tabelle
104 public String getName() {
105 return "to" + storage.getTableName();