Hi,

I used "seam generate-entities" to generate a complete CRUD application from an 
existing database schema. Everything works great! I just need some 
clarification/education to better understand EntityHome.

Here is the background description: there is a bidirectional one-to-many 
relation between two entities, Widget (1) <---> Feed (n), entity Widget on the 
one side and entity Feed on the many side. Below are the seam generated classes 
extending EntityHome.

So, my questions are:

1. Why isWired() always returns true? In other words, is there any situation 
that this method needs to return false?

2. wire() seems to be the method to "wire up" the correct entity relation, but 
it's empty in WidgetHome class, even though this is a bidirectional relation 
and both sides need to be wired, why?

3. the wire() method is only referenced in page.xml as a page action (I can't 
find a complete description about page.xml anywhere, but I guess the purpose of 
action element is to call some method on page load, right?), the 
creation/refreshing of the home component seems unclear to me.

Thanks.

WidgetHome.java
package com.kfi.was.entity;
  | 
  | import java.math.BigDecimal;
  | import java.util.ArrayList;
  | import java.util.List;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.framework.EntityHome;
  | 
  | @Name("widgetHome")
  | public class WidgetHome extends EntityHome<Widget> {
  | 
  |     public void setWidgetId(BigDecimal id) {
  |             setId(id);
  |     }
  | 
  |     public BigDecimal getWidgetId() {
  |             return (BigDecimal) getId();
  |     }
  | 
  |     @Override
  |     protected Widget createInstance() {
  |             Widget widget = new Widget();
  |             return widget;
  |     }
  | 
  |     public void wire() {
  |     }
  | 
  |     public boolean isWired() {
  |             return true;
  |     }
  | 
  |     public Widget getDefinedInstance() {
  |             return isIdDefined() ? getInstance() : null;
  |     }
  | 
  |     public List<Feed> getFeeds() {
  |             return getInstance() == null ? null : new 
ArrayList<Feed>(getInstance()
  |                             .getFeeds());
  |     }
  |     
  | }
  | 

FeedHome.java
package com.kfi.was.entity;
  | 
  | import java.math.BigDecimal;
  | import org.jboss.seam.annotations.In;
  | import org.jboss.seam.annotations.Name;
  | import org.jboss.seam.framework.EntityHome;
  | 
  | @Name("feedHome")
  | public class FeedHome extends EntityHome<Feed> {
  | 
  |     @In(create = true)
  |     WidgetHome widgetHome;
  | 
  |     public void setFeedId(BigDecimal id) {
  |             setId(id);
  |     }
  | 
  |     public BigDecimal getFeedId() {
  |             return (BigDecimal) getId();
  |     }
  | 
  |     @Override
  |     protected Feed createInstance() {
  |             Feed feed = new Feed();
  |             return feed;
  |     }
  | 
  |     public void wire() {
  |             Widget widget = widgetHome.getDefinedInstance();
  |             if (widget != null) {
  |                     getInstance().setWidget(widget);
  |             }
  |     }
  | 
  |     public boolean isWired() {
  |             return true;
  |     }
  | 
  |     public Feed getDefinedInstance() {
  |             return isIdDefined() ? getInstance() : null;
  |     }
  | 
  | }
  | 

View the original post : 
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4047364#4047364

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4047364
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to