Class ConstructionTargetKey

  • All Implemented Interfaces:
    DebugDumpable, HumanReadableDescribable, ShortDumpable, Serializable, Cloneable

    public class ConstructionTargetKey
    extends Object
    implements Serializable, DebugDumpable, ShortDumpable, HumanReadableDescribable, Cloneable
    Specifies the target of resource object construction - i.e. to which projection context it should be applied. It is similar to ProjectionContextKey but 1. resource, kind, and intent are required - we can afford this, because constructions are always targeted at specific resource object type, 2. there is no order nor "gone" flag. Note: the name of this class is a shorted form of `ResourceObjectConstructionTargetKey` (that is just too long/clumsy). *FIXME* There is a slight ambiguity here: a ConstructionTargetKey may point to multiple projection contexts. While the ambiguity of "gone" flag (true/false) is trivial and can be eliminated by simply looking for "not gone" projections, the ambiguity of "order" is more problematic. I.e. what if we assign a construction of resource/account/default, and there are multiple contexts with these coordinates (e.g. with orders 0 and 10)? A naive attempt of using the first "not completed" one fails because of the fact that constructions may be re-evaluated, and - during re-evaluation - they are meant to be attached to projections that are already completed. See LensContext.findFirstNotCompletedProjectionContext(ConstructionTargetKey) and LensContext#findFirstProjectionContext(ConstructionTargetKey). But this ambiguity is here (perhaps) from the beginning.
    See Also:
    Serialized Form
    • Method Detail

      • getResourceOid

        @NotNull
        public @NotNull String getResourceOid()
      • getIntent

        @NotNull
        public @NotNull String getIntent()
      • getTag

        public String getTag()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • shortDump

        public void shortDump​(StringBuilder sb)
        Description copied from interface: ShortDumpable
        Show the content of the object intended for diagnostics. This method is supposed to append a compact, human-readable output in a single line. Unlike toString() method, there is no requirement to identify the actual class or type of the object. It is assumed that the class/type will be obvious from the context in which the output is used.
        Specified by:
        shortDump in interface ShortDumpable
        Parameters:
        sb - StringBuilder to which to a compact one-line content of the object intended for diagnostics by system administrator should be appended.