94 | | [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.base.model.resources/doc/org.sophie2.base.model.resources.jpg)]] [[BR]] |
| 94 | [[Image(source:/trunk/sophie2-platform/modules/org.sophie2.base.model.resources/doc/org.sophie2.base.model.resources.jpg)]] [[BR]][[BR]] |
| 95 | |
| 96 | A resource is represented by the Resource class and the ResourceSpace class. The Resource class is more like a representation of the content of the resource and the ResourceSpace is what manages it's Resource and it's sub-objects which state is trackable. |
| 97 | * Resource |
| 98 | * A Resource can only be created with a ResourceSpace! |
| 99 | * All the Resources referred from a Resource are represented by ResourceRefs. |
| 100 | * All the sub-resources that are owned by a Resource (The Resource is their parent) are contained in the children list. It is possible to have outer resources refered from it but they are not in that children list. |
| 101 | * The resource name is unique for the level in the Resource's hierarchy it is. The siblings of the Resource in the Resource tree have to have different names. The name is |
| 102 | set from the ResourceSpace at the resource's creation. |
| 103 | * The Resource's entity id is it's unique identifier, it can not be changed and it is generated and set by the ResourceSpace upon creation. It is used for searching in the ResourceLocalCache or on a outer location. |
| 104 | * The resource location is absolute location of the resource, it can be: |
| 105 | * Location on the file system |
| 106 | * Location on a server |
| 107 | * Temporary location in the Sophie 2 application if the Resource is not saved anywhere. |
| 108 | * Every resource type must implement the getResourceKind method that can identify the resource type. |
| 109 | * If there are important actions that must be executed when the resource is created and cached they must be put in the initialized method. |
| 110 | * All the meta information providing fields in a resource must be annotated with the @ResourceMeta annotation. |
| 111 | * Two Resources are equal if their entity id and location are the same. |
| 112 | * The entity id and the location of a Resource are held in the ResourceSpace of the Resource. |
| 113 | * All the ProObjects, which state is important for the state and the reconstruction of a Resource must be annotated with the annotation @Own |