Class ConstructionTargetKey
java.lang.Object
com.evolveum.midpoint.model.impl.lens.construction.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:
-
Field Summary
Fields inherited from interface com.evolveum.midpoint.util.DebugDumpable
INDENT_STRING
-
Method Summary
Modifier and TypeMethodDescription@NotNull ProjectionContextFilter
asFilter()
Return filter to match this key; `gone` and `order` are irrelevant, `tag` is relevant.clone()
debugDump
(int indent) boolean
@NotNull String
@NotNull ShadowKindType
getKind()
@NotNull String
getTag()
@NotNull ResourceObjectTypeIdentification
int
hashCode()
void
Show the content of the object intended for diagnostics.toString()
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.evolveum.midpoint.util.DebugDumpable
debugDump, debugDumpLazily, debugDumpLazily
Methods inherited from interface com.evolveum.midpoint.util.ShortDumpable
shortDump, shortDumpLazily
-
Method Details
-
getResourceOid
-
getKind
-
getIntent
-
getTag
-
asFilter
Return filter to match this key; `gone` and `order` are irrelevant, `tag` is relevant. -
equals
-
hashCode
public int hashCode() -
toString
-
shortDump
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 interfaceShortDumpable
- Parameters:
sb
- StringBuilder to which to a compact one-line content of the object intended for diagnostics by system administrator should be appended.
-
toHumanReadableDescription
- Specified by:
toHumanReadableDescription
in interfaceHumanReadableDescribable
-
debugDump
- Specified by:
debugDump
in interfaceDebugDumpable
-
clone
-
toProjectionContextKey
-
getTypeIdentification
-