commons-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From John Zoetebier <john.zoeteb...@transparent.co.nz>
Subject Re: BasicDynaBean and overriding the toString()
Date Mon, 01 Dec 2003 21:39:44 GMT
Have you ever considered using a HashMap wrapper ?
The wrapper has a HashMap with {FieldName, FieldValue}

Two simple methods do the job:
public Object getField(String fieldName) {
	return fieldMap.get(fieldName);
}

public void setField(String fieldName, Object fieldValue) {
	this.fieldMap.set(fieldName, fieldValue);
}

You can enhance the wrapper with meta information of for example:
- the field names (or column names if you like).
- field type

I call the wrapper DataModel and can use it in Web and GUI systems.

This solution is:
- simple as you do not have to write a dedicated Bean for each entity in 
your system.
- you need only 1 wrapper for all entities in your system
- fast as you do not have to set or get zillions of getters and setters.
- no dependencies between data store and data model
	The problem with JavaBeans for storing the data model is that any change 
in the data store requires a change in the software.
- saves development time, easy to maintain, easy to test and debug.
	On a big project this wrapper can save hundreds if not thousands of hours 
work.

I simply felt that the standard solution of Jakarta Struts using Java 
Beans is inadequate as it introduces hard coupling of data store and data 
model classes. I have seen some cases in which essentially the same date 
structure was replicated in many layers. One additional field means going 
through many classes manually.
The hashMap wrapper solves this problem.
Lately I saw a similar solution online in a magazine lately, but 
unfortunately cannot find the URL. They called it something like 
DataJewel.java.

-- 
John Zoetebier
Web site: http://www.transparent.co.nz



On Mon, 01 Dec 2003 19:18:53 +0000, dumdum 420 <dumdum420@hotmail.com> 
wrote:

> Hi All,
>
> I am using the BasicDynaBean for my entire project which seemed to be 
> working fine till I started coding for the frontend which is java swing 
> based.
>
> Since the BasicDynaBean has not overridden the toString method when I 
> try to display my JTree using these beans all i get is the Objects 
> memory address which I am not really interested.
>
> Now since I have lot of swing based componenets  which have similar 
> behaviour I am wondering how can I override toString method to get 
> desired results ie may be return a propertyName say for example
>
> public String toString(){
>      return this.get("person_Name");
> }
>
> BTW: Remember that the Bean is same across the project and I cannot do 
> this method in the bean since then for say another usecase this property 
> does not even exist.
>
> If I am not clear please ask me again.
>
> I am really stuck and really need a solution.
>
> Thanx in advace.
>
> dumdum420
>
> _________________________________________________________________
> online games and music with a high-speed Internet connection!  Prices 
> start at less than $1 a day average.  https://broadband.msn.com (Prices 
> may vary by service area.)
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: commons-user-help@jakarta.apache.org
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: commons-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-user-help@jakarta.apache.org


Mime
View raw message