Hi Per Nyfelt.

I am about to try deploying my inherited beans (today or tomorrow).
I will then be able to report what worked and what didn't.
My experience with java and its products suggests that if something sounds
like it should work logically, it does work finally.


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Per Nyfelt
Sent: Sunday, January 07, 2001 12:27 PM
To: jBoss
Subject: RE: [jBoss-User] Inheritance in CMP beans - followup


So how about a real Is-A situation?

I have motors and pumps that both are products. In the database there is a
Product table with generic attributes like id, serialNumber, price etc.
There is also a Motor and a Pump table with specific data such as
axelDiameter for Motor and length for Pump. The id in the pump table matches
id in the product table.

Conceptually i think of Motor and Pump as extending Product. I have a
business method called getDetails() in Product which returns a Properties
object with its data and override these in Pump and Motor to take advantage
of polymorphism so I can  work with generic Products for most of the time in
the JSP's.

If i want to do CMP what would the best way of getting the Motor to also
contain its generic Product data?

I've created CMP entity beans for Product, Motor and Pump and let MotorBean
extend ProductBean and remote interfaces Motor extend Product (and the same
for Pump) but the when doing:
        Motor myMotor = motorHome.findByPrimaryKey(key);
I only get Motor properties so I was trying to intercept the construction of
Product by doing super.findByPrimaryKey(key) in MotorBean but I'm running
into issues with finder v.s. create situations. I guess I can figure those
out but I'm not sure this is the way to go.

Any suggestions?

Best regards,
Per

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Shahar Solomianik
Sent: den 7 januari 2001 09:49
To: 'jBoss'
Subject: RE: [jBoss-User] Inheritance in CMP beans - followup


Hi Kevin.
Thanks for the detailed, well explained reply.
I thought IsA is initials for something like "Inehritance Structure
Architecture" or something like...

Well, the inheritance discussed is not a IsA...
I just have some entities with same attributes ... (and I am lazy...)

Cheers
Shahar

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Kevin P. Monaghan
Sent: Sunday, January 07, 2001 9:47 AM
To: jBoss
Subject: RE: [jBoss-User] Inheritance in CMP beans - followup


Hi Shahar:

The "Is-A" relationship is all about inheritance, also called a gen-spec
relationship or "generalization-specialization" relationship between
classes. If you are using inheritance correctly, a subclass (the
"specialization") "is a" kind of it's super class (the "generalization").
For example - and I really hate this example but anyone can understand it -
a CheckingAccount is a ("is-a") kind of Account, a SavingsAccount is a
("is-a") kind of account. So, in theory, this is a good candidacy for
inheritance. There is a "is-a" relationship between CheckingAccount and
Account as well as between SavingsAccount and Account.

WRT your comments about OO, real live code reuse (outside of within the
constructs of a framework or architecture-level / system-level components)
may occur but in very small amounts. You have to look at amounts of reuse in
different areas. For example, how much reuse do you get in the arena of
business objects? Maybe not too much. I have been developing OO apps for 10
years now and anything more than a trivial amount of code reuse at the
business object level is rare. Originally, OO was touted as being all about
code reuse, but in reality it is about complexity reduction, flexibility and
extensibility (at the least).

Good luck,


Kevin

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Shahar Solomianik
Sent: Sunday, January 07, 2001 1:57 AM
To: 'jBoss'
Subject: RE: [jBoss-User] Inheritance in CMP beans - followup


Hi all.
Sorry for not being here while you discuss this issue...
I DO want it just for code reuse, nothing else...
The ancestor remote interface will never be deployed as a remote interface,
it will only be derived from.
Could you please explain "inheritance in Java is about IsA behaviour not
code re-use" ? (what is IsA ?)
Object Oriented was originally thought of as a code reuse method, wasnt it ?
(I mean, components and stuff came later, didnt they ?)

Shahar
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of Kenworthy, Edward
Sent: Friday, January 05, 2001 10:03 AM
To: 'jBoss'
Subject: RE: [jBoss-User] Inheritance in CMP beans - followup


Hi Shahar

Don't do it.

If you have remote interface A and create remote interface B by extending A
then you are saying "I can use an instance of B to substitue for an instance
A". THIS IS NOT TRUE !

EJB does not properly support inheriting of one bean from another. By which
I mean, you can do it, BUT it will not behave as it should. (eg IsA doesn't
work!).

If you don't care about this, ie you are using the inheritance for code
re-use then I would do it in a different way because otherwise you would
confuse people (inheritance in Java is about IsA behaviour not code re-use).
I would do it by factoring out a common base (which is NOT a remote
interface) which both A and B extend.

Edward

-----Original Message-----
From: Shahar [mailto:[EMAIL PROTECTED]]
Sent: 03 January 2001 17:12
To: [EMAIL PROTECTED]
Subject: [jBoss-User] Inheritance in CMP beans - followup


[Hi again]
off course, I also intend to extend the remote interface. Possible ?



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]


--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]




--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to