.match(PolicyCreated.class, pc -> policy = pc.getPolicy().toBuilder() .setLifecycle(PolicyLifecycle.ACTIVE) .setRevision(lastSequenceNr()) final PolicyBuilder copyBuilder = policy.toBuilder(); policy = policy.toBuilder() .setLifecycle(PolicyLifecycle.DELETED) .setRevision(lastSequenceNr()) .match(PolicyEntriesModified.class, pem -> policy = policy.toBuilder() .removeAll(policy.getEntriesSet()) .setAll(pem.getPolicyEntries()) .match(PolicyEntryCreated.class, pec -> policy = policy.toBuilder() .set(pec.getPolicyEntry()) .setRevision(lastSequenceNr()) .match(PolicyEntryModified.class, pem -> policy = policy.toBuilder() .set(pem.getPolicyEntry()) .setRevision(lastSequenceNr()) .match(PolicyEntryDeleted.class, ped -> policy = policy.toBuilder() .remove(ped.getLabel()) .setRevision(lastSequenceNr()) .map(policyEntry -> PoliciesModelFactory .newPolicyEntry(sm.getLabel(), sm.getSubjects(), policyEntry.getResources())) .ifPresent(modifiedPolicyEntry -> policy = policy.toBuilder()
.match(PolicyCreated.class, pc -> policy = pc.getPolicy().toBuilder() .setLifecycle(PolicyLifecycle.ACTIVE) .setRevision(lastSequenceNr()) final PolicyBuilder copyBuilder = policy.toBuilder(); policy = policy.toBuilder() .setLifecycle(PolicyLifecycle.DELETED) .setRevision(lastSequenceNr()) .match(PolicyEntriesModified.class, pem -> policy = policy.toBuilder() .removeAll(policy.getEntriesSet()) .setAll(pem.getPolicyEntries()) .match(PolicyEntryCreated.class, pec -> policy = policy.toBuilder() .set(pec.getPolicyEntry()) .setRevision(lastSequenceNr()) .match(PolicyEntryModified.class, pem -> policy = policy.toBuilder() .set(pem.getPolicyEntry()) .setRevision(lastSequenceNr()) .match(PolicyEntryDeleted.class, ped -> policy = policy.toBuilder() .remove(ped.getLabel()) .setRevision(lastSequenceNr()) .map(policyEntry -> PoliciesModelFactory .newPolicyEntry(sm.getLabel(), sm.getSubjects(), policyEntry.getResources())) .ifPresent(modifiedPolicyEntry -> policy = policy.toBuilder()