Class AbstractConstruction<AH extends AssignmentHolderType,​ACT extends AbstractConstructionType,​EC extends EvaluatedAbstractConstruction<AH>>

  • Type Parameters:
    AH - focus type to which this construction applies
    ACT - type of the construction bean (e.g. ConstructionType, PersonaConstructionType)
    EC - "EvaluatedXXX" class paired with the construction (e.g. EvaluatedPlainResourceObjectConstructionImpl, EvaluatedPersonaConstructionImpl)
    All Implemented Interfaces:
    DebugDumpable
    Direct Known Subclasses:
    PersonaConstruction, ResourceObjectConstruction

    public abstract class AbstractConstruction<AH extends AssignmentHolderType,​ACT extends AbstractConstructionType,​EC extends EvaluatedAbstractConstruction<AH>>
    extends Object
    implements DebugDumpable
    A superclass for both resource object constructions (ResourceObjectConstruction) and persona object constructions (PersonaConstruction). Contains the construction definition (bean) and the relevant context: assignment path, source object, lens context, validity information. Basically, everything that is needed to evaluate this construction. Note: it is still not quite clear how much is persona construction evaluation similar to the evaluation of a resource object construction. Persona constructions are currently evaluated using object template evaluation mechanism, while resource object constructions evaluation is based on attribute/association mappings evaluation directly in EvaluatedResourceObjectConstructionImpl and its subclass(es).
    Author:
    Radovan Semancik
    • Field Detail

      • constructionBean

        @Nullable
        protected final ACT extends AbstractConstructionType constructionBean
        Definition of the assigned construction. (For "artificial" constructions created during outbound mappings evaluations it is null.)
      • assignmentPath

        @Nullable
        protected final @Nullable AssignmentPathImpl assignmentPath
        If this construction is assigned, this is the path to it. (For "artificial" constructions created during outbound mappings evaluations it is null.)
      • source

        @NotNull
        protected final @NotNull ObjectType source
        Object in which the construction is defined: either assignment segment source object (assignment holder) or a resource object.
      • originType

        @NotNull
        protected final @NotNull OriginType originType
        Origin of this construction.
      • lensContext

        @NotNull
        protected final @NotNull LensContext<AH extends AssignmentHolderType> lensContext
        Lens context in which this construction is collected and evaluated.
      • now

        @NotNull
        protected final @NotNull XMLGregorianCalendar now
        Current time. Should be copied from the projector's current time, but it is currently not always the case.
      • beans

        @NotNull
        protected final @NotNull ModelBeans beans
        Components (Spring beans) needed for construction processing.
    • Method Detail

      • getSource

        @NotNull
        public @NotNull ObjectType getSource()
      • getOriginType

        @NotNull
        public @NotNull OriginType getOriginType()
      • getLensContext

        @NotNull
        public @NotNull LensContext<AH> getLensContext()
      • getConstructionBean

        @Nullable
        public ACT getConstructionBean()
      • setFocusOdoAbsolute

        public void setFocusOdoAbsolute​(ObjectDeltaObject<AH> focusOdoAbsolute)
      • isWeak

        public boolean isWeak()
      • isValid

        public boolean isValid()
      • getWasValid

        public boolean getWasValid()
      • setWasValid

        public void setWasValid​(boolean wasValid)
      • getEvaluatedConstructionTriple

        public abstract DeltaSetTriple<EC> getEvaluatedConstructionTriple()
      • isIgnored

        public abstract boolean isIgnored()
        Typical reason for being ignored is that the resourceRef cannot be resolved.
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object