Entity Component Systems

Ok so I’m trying to create a entity component system to store general game objects.
I created my abstract entity class that has parent/children/name variables and basic methods for managing hierarchy models.
Then I have my abstract updatable class which when update() is called will call update of it’s children, and their children, down the model.
Then I tried making an Asset class, of which some classes (Mesh, Shader, Image, UITheme) will extend but it has been a over all messy pain.

I’m going to redesign the entire thing, as it’s just not flexible enough.
MasterEntity(Will have name/children but no parent) {
Input
UI
Scene(Will store entities)
Entity(Will have parent) {
Asset(Will be a actual file) {
Shaders, Meshes, Images, UIThemes
}
GameObject(Adds update() and tranforms) {
Components {Matter, Cameras, Particle Emitter, Ridgidbody, etc}
}
}
}

Anyone have any good links?
How does the diamond operator work, and should I use it?
Should I make these extend, or make interfaces, or what?

The diamond operator is just a convenience so you can write List<GameObject> myList = new ArrayList<>(); instead of List<GameObject> myList= new ArrayList<[b]GameObject[/b]>();.

Typical EC systems have very little to no hierarchical structure. . They are rarely tied in parent/child relationships and are almost never used with inheritance. Although Assets may be stored by components, usually the Assets (as well as the UI, Input, and the Scene) are not Entities themselves.

This is a pretty good discussion about Components.

You could look at this framework:
http://gamadu.com/apollo/

or another paradigm:

Which one would you describe as being better? And why Annotation injections? They seem to be some kind of hacky…

I’ve used Artemis, and it’s really efficient. Just because it seems hacky doesn’t make it bad. You also don’t have to use any annotations in Artemis.

I added annotations for one purpose only: clean code and convenience.

Using them is up to you.