org.nakedobjects.metamodel.facets.object.aggregated.AggregatedFacet Maven / Gradle / Ivy
The newest version!
package org.nakedobjects.metamodel.facets.object.aggregated;
import org.nakedobjects.metamodel.facets.MarkerFacet;
import org.nakedobjects.metamodel.facets.object.immutable.ImmutableFacet;
/**
* Indicates that this class is aggregated, that is, wholly contained within a larger object.
*
*
* The object may or may not be {@link ImmutableFacet immutable}, and may reference regular entity domain
* objects or other aggregated objects.
*
*
* In the standard Naked Objects Programming Model, typically corresponds to applying the @Aggregated
* annotation at the class level.
*
*
* In terms of an analogy, aggregated is similar to Hibernate's component types (for larger mutable in-line
* objects) or to Hibernate's user-defined types (for smaller immutable values).
*
*
* TODO: should also be able to apply to associations, indicating that the reference is aggregating.
*/
public interface AggregatedFacet extends MarkerFacet {
}