public ActivationType effectiveStatus(ActivationStatusType value) { setEffectiveStatus(value); return this; }
public void computeEffective(String lifecycleStatus, ActivationType activationType, XMLGregorianCalendar referenceTime, LifecycleStateModelType stateModel) { ActivationStatusType effectiveStatus = getForcedLifecycleActivationStatus(lifecycleStatus, stateModel); ActivationStatusType administrativeStatus = activationType.getAdministrativeStatus(); if (effectiveStatus == null && administrativeStatus != null) { // Explicit administrative status overrides everything effectiveStatus = administrativeStatus; } TimeIntervalStatusType validityStatus = getValidityStatus(activationType); if (effectiveStatus == null) { if (validityStatus == null) { // No administrative status, no validity. Defaults to enabled. effectiveStatus = ActivationStatusType.ENABLED; } else { switch (validityStatus) { case AFTER: case BEFORE: effectiveStatus = ActivationStatusType.DISABLED; break; case IN: effectiveStatus = ActivationStatusType.ENABLED; break; } } } activationType.setEffectiveStatus(effectiveStatus); activationType.setValidityStatus(validityStatus); }
public static void cleanupShadowActivation(ActivationType a) { a.setAdministrativeStatus(null); a.setEffectiveStatus(null); a.setValidFrom(null); a.setValidTo(null); a.setValidityStatus(null); a.setLockoutStatus(null); a.setLockoutExpirationTimestamp(null); a.setValidityChangeTimestamp(null); }
public static void copyToJAXB(RActivation repo, ActivationType jaxb, PrismContext prismContext) { Validate.notNull(jaxb, "JAXB object must not be null."); Validate.notNull(repo, "Repo object must not be null."); if (repo.getAdministrativeStatus() != null) { jaxb.setAdministrativeStatus(repo.getAdministrativeStatus().getSchemaValue()); } if (repo.getEffectiveStatus() != null) { jaxb.setEffectiveStatus(repo.getEffectiveStatus().getSchemaValue()); } if (repo.getValidityStatus() != null) { jaxb.setValidityStatus(repo.getValidityStatus().getSchemaValue()); } jaxb.setValidFrom(repo.getValidFrom()); jaxb.setValidTo(repo.getValidTo()); jaxb.setDisableReason(repo.getDisableReason()); jaxb.setArchiveTimestamp(repo.getArchiveTimestamp()); jaxb.setDisableTimestamp(repo.getDisableTimestamp()); jaxb.setEnableTimestamp(repo.getEnableTimestamp()); jaxb.setValidityChangeTimestamp(repo.getValidityChangeTimestamp()); }
@Test public void testAssignmentEquivalent() throws Exception { System.out.println("\n\n===[ testAssignmentEquivalent ]===\n"); PrismContext prismContext = PrismTestUtil.getPrismContext(); AssignmentType a1 = new AssignmentType(prismContext); ActivationType a1a = new ActivationType(prismContext); a1a.setValidFrom(XmlTypeConverter.createXMLGregorianCalendar(new Date())); a1a.setEffectiveStatus(ActivationStatusType.ENABLED); a1.setActivation(a1a); AssignmentType a2 = new AssignmentType(prismContext); ActivationType a2a = new ActivationType(prismContext); a2a.setEffectiveStatus(ActivationStatusType.ENABLED); a2.setActivation(a2a); // WHEN assertFalse(a1.equals(a2)); assertFalse(a1.asPrismContainerValue().equivalent(a2.asPrismContainerValue())); // a bit redundant assertFalse(a2.equals(a1)); assertFalse(a2.asPrismContainerValue().equivalent(a1.asPrismContainerValue())); // a bit redundant }
private <F extends FocusType> void applyAssignmentValueMetadataAdd(LensContext<F> context, PrismContainerValue<AssignmentType> assignmentContainerValue, String desc, XMLGregorianCalendar now, Task task, OperationResult result) throws SchemaException { AssignmentType assignmentType = assignmentContainerValue.asContainerable(); MetadataType metadataType = assignmentType.getMetadata(); if (metadataType == null) { metadataType = new MetadataType(); assignmentType.setMetadata(metadataType); } transplantRequestMetadata(context, metadataType); // This applies the effective status only to assignments that are completely new (whole container is added/replaced) // The effectiveStatus of existing assignments is processed in FocusProcessor.processAssignmentActivation() // We cannot process that here. Because this code is not even triggered when there is no delta. So recompute will not work. ActivationType activationType = assignmentType.getActivation(); ActivationStatusType effectiveStatus = activationComputer.getEffectiveStatus(assignmentType.getLifecycleState(), activationType, null); if (activationType == null) { activationType = new ActivationType(); assignmentType.setActivation(activationType); } activationType.setEffectiveStatus(effectiveStatus); applyCreateMetadata(context, metadataType, now, task); if (LOGGER.isTraceEnabled()) { LOGGER.trace("Adding operational data {} to assignment cval ({}):\nMETADATA:\n{}\nACTIVATION:\n{}", metadataType, desc, assignmentContainerValue.debugDump(1), activationType.asPrismContainerValue().debugDump(1)); } }
activationType.setEffectiveStatus(activationStatusType); LOGGER.trace("Converted activation administrativeStatus: {}", activationStatusType); continue;
ActivationType newActivationType = new ActivationType(); activationDelta.setValuesToReplace(newActivationType.asPrismContainerValue()); newActivationType.setEffectiveStatus(expectedEffectiveStatus); focusContext.swallowToSecondaryDelta(activationDelta); } else {
a1e.setDescription("descr1"); ActivationType activation1e = new ActivationType(); activation1e.setEffectiveStatus(ActivationStatusType.ENABLED); a1e.setActivation(activation1e);
a1e.setDescription("descr1"); ActivationType activation1e = new ActivationType(); activation1e.setEffectiveStatus(ActivationStatusType.ENABLED); a1e.setActivation(activation1e);