View Javadoc

1   /* (c) Copyright 2003 Caleigo AB, All rights reserved. 
2    * 
3    * This library is free software; you can redistribute it and/or
4    * modify it under the terms of the GNU Lesser General Public
5    * License as published by the Free Software Foundation; either
6    * version 2.1 of the License, or (at your option) any later version.
7    * 
8    * This library is distributed in the hope that it will be useful,
9    * but WITHOUT ANY WARRANTY; without even the implied warranty of
10   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
11   * Lesser General Public License for more details.
12   * 
13   * You should have received a copy of the GNU Lesser General Public
14   * License along with this library; if not, write to the Free Software
15   * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
16   *  
17   */
18  package org.caleigo.core.meta;
19  
20  import org.caleigo.core.*;
21  
22  /*** MetaFieldRelationEntiy is the entity class for MetaFieldRelation objects.
23  *
24  * @author dennis
25  * @version 1.0.0
26  *//*
27  * WHEN    WHO                WHY & WHAT 
28  * ------------------------------------------------------------------------------
29  * 030627  dennis    Creation
30  */
31  public class MetaFieldRelationEntity extends AbstractMetaEntity 
32  {
33      // Constructors ------------------------------------------------------------
34      
35      /*** Default constructor for MetaFieldRelationEntity.
36       */
37      public MetaFieldRelationEntity() 
38      {
39      }
40      
41      /*** Copy constructor for MetaFieldRelationEntity.
42       */
43      public MetaFieldRelationEntity(MetaFieldRelationEntity entity) 
44      {
45          this.copyData(entity);
46          this.clearAllDirtyFlags();
47      }
48      
49      /*** This constructor creates a new MetaFieldRelationEntity and loads
50       * it with data from the data source using the entity's identity data.
51       */
52      public MetaFieldRelationEntity(String aEntityRelation, String aReferenceEntity, String aReferenceField, String aTargetEntity, String aTargetField) 
53      {
54          super(Qualifier.create(MetaFieldRelation.EntityRelation, new String(aEntityRelation)).and(MetaFieldRelation.ReferenceEntity, new String(aReferenceEntity)).and(MetaFieldRelation.ReferenceField, new String(aReferenceField)).and(MetaFieldRelation.TargetEntity, new String(aTargetEntity)).and(MetaFieldRelation.TargetField, new String(aTargetField)));
55      }
56      
57      
58      /*** This constructor creates a new MetaFieldRelationEntity and loads
59       * it with data from the data source using the provided identity qualifier.
60       */
61      public MetaFieldRelationEntity(Qualifier identityQualifier) 
62      {
63          super(identityQualifier);
64      }
65      
66      // Superclass overrides ----------------------------------------------------
67      public IEntityDescriptor getEntityDescriptor()
68      {
69          return MetaFieldRelation.instance;
70      }
71      
72      protected void doOnDataChange(IFieldDescriptor fieldDescriptor, Object oldValue, Object newValue)
73      {
74          if(fieldDescriptor==MetaFieldRelation.EntityRelation && newValue!=null)
75          {
76              MetaEntityRelationEntity entity = MetaEntityRelation.load(newValue.toString());
77              if(entity!=null)
78              {
79                  this.setReferenceEntity(entity.getReferenceEntity());
80                  this.setTargetEntity(entity.getTargetEntity());
81              }
82          }
83          
84          if(fieldDescriptor==MetaFieldRelation.ReferenceEntity && newValue!=null)
85          {
86              ISelection fieldSelection = MetaFieldDescriptor.instance.loadSelection(Qualifier.create(MetaFieldDescriptor.Entity, this.getData(MetaFieldRelation.ReferenceEntity)));
87              if (fieldSelection != null && fieldSelection.size() >= 1)
88                  this.setData(MetaFieldRelation.ReferenceField, fieldSelection.getEntity(0).getData(MetaFieldDescriptor.SourceName));
89              else
90                  this.setData(MetaFieldRelation.ReferenceField, null);
91          }
92          
93          if(fieldDescriptor==MetaFieldRelation.TargetEntity && newValue!=null)
94          {
95              ISelection fieldSelection = MetaFieldDescriptor.instance.loadSelection(Qualifier.create(MetaFieldDescriptor.Entity, this.getData(MetaFieldRelation.TargetEntity)));
96              if (fieldSelection != null && fieldSelection.size() >= 1)
97                  this.setData(MetaFieldRelation.TargetField, fieldSelection.getEntity(0).getData(MetaFieldDescriptor.SourceName));
98              else
99                  this.setData(MetaFieldRelation.TargetField, null);
100         }
101     }
102         
103     // Access methods ----------------------------------------------------------
104     public String getEntityRelation() {return (String)this.getData(MetaFieldRelation.EntityRelation);}
105     public String getReferenceEntity() {return (String)this.getData(MetaFieldRelation.ReferenceEntity);}
106     public String getReferenceField() {return (String)this.getData(MetaFieldRelation.ReferenceField);}
107     public String getTargetEntity() {return (String)this.getData(MetaFieldRelation.TargetEntity);}
108     public String getTargetField() {return (String)this.getData(MetaFieldRelation.TargetField);}
109 
110     public void setEntityRelation(String value) {this.setData(MetaFieldRelation.EntityRelation, value);}
111     public void setReferenceEntity(String value) {this.setData(MetaFieldRelation.ReferenceEntity, value);}
112     public void setReferenceField(String value) {this.setData(MetaFieldRelation.ReferenceField, value);}
113     public void setTargetEntity(String value) {this.setData(MetaFieldRelation.TargetEntity, value);}
114     public void setTargetField(String value) {this.setData(MetaFieldRelation.TargetField, value);}
115 
116     public Object getEntityRelationData() {return this.getData(MetaFieldRelation.EntityRelation);}
117     public Object getReferenceEntityData() {return this.getData(MetaFieldRelation.ReferenceEntity);}
118     public Object getReferenceFieldData() {return this.getData(MetaFieldRelation.ReferenceField);}
119     public Object getTargetEntityData() {return this.getData(MetaFieldRelation.TargetEntity);}
120     public Object getTargetFieldData() {return this.getData(MetaFieldRelation.TargetField);}
121 
122     public void setEntityRelationData(Object value) {this.setData(MetaFieldRelation.EntityRelation, value);}
123     public void setReferenceEntityData(Object value) {this.setData(MetaFieldRelation.ReferenceEntity, value);}
124     public void setReferenceFieldData(Object value) {this.setData(MetaFieldRelation.ReferenceField, value);}
125     public void setTargetEntityData(Object value) {this.setData(MetaFieldRelation.TargetEntity, value);}
126     public void setTargetFieldData(Object value) {this.setData(MetaFieldRelation.TargetField, value);}
127 }