I don't really like that idea, as it means that forge then becomes part of your build process.
With the @AutoHome it should not really matter about IDE auto completion, the idea is to just register a bean that allows you to lookup beans by ID from the EL.
The underlying bean would probably look like:
public class AutoHomeBean<T,ID> {
private ID id;
private T instance;
void setId(ID id) {
if(!this.id.equals(id) ) { //need NPE check as well
this.instance = null;
}
this.id = id;
}
ID getId() //getter;
public T getInstance() {
if(instance == null && id != null) {
instance = em.find(...);
}
return instance
}
}
Then if you put the AutoHome annotation on MyEntity you would get a MyEntityHome bean being registered, and you could then do things like:
#{myEntityHome.setId(10)};
#{myEntityHome.instance.name}
Not sure how practical / useful it will be in practice, but that was the basic idea.
Stuart
On 22/09/2011, at 8:19 AM, Dan Allen wrote:
True. I don't really see the problem with having an object that extends a base object, even if it has no additional methods.
...and if that is the solution, then the @AutoCrud could be a hint to forge to generate that class if it doesn't yet exist. Now that's an idea :)
What I like most in CDI and Seam3 is that it's very
easy to keep things simple and that's something I
strongly advocate.
+1
Of course there're still boilerplate code, but I
think it's minimal (compared to the JEE generations
before), and that's something forge can create
without the need to satisfy a "framework". Yes, I
admitedly am afraid of that word.
That's fine, it doesn't have to be a framework. I do
think there is room for having some common scaffolding,
though. If we can do that by extending the programming
model (annotations, generic beans or interfaces) so that
it's declarative, that's probably ideal.
I suggest that we brainstorm proposals using gists (http://gist.github.com). That will
get the ball rolling. We can start with the idea Jason
posted, or feel free to take a different approach.
-Dan
--
Dan Allen
Principal Software Engineer, Red Hat | Author of Seam in
Action
Registered Linux User #231597