/** * Returns a mutable builder with a fluent API for an immutable {@code Policy}. The builder is initialised * with the Policy entries of this instance. * * @return the new builder. */ default PolicyBuilder toBuilder() { return PoliciesModelFactory.newPolicyBuilder(this); }
/** * Returns a mutable builder with a fluent API for an immutable {@code Policy}. * * @param id the ID of the new Policy. * @return the new builder. * @throws PolicyIdInvalidException if {@code id} is invalid. */ static PolicyBuilder newBuilder(final CharSequence id) { return PoliciesModelFactory.newPolicyBuilder(id); }
static Policy substitutePolicy(final Policy policy, final HeaderBasedPlaceholderSubstitutionAlgorithm substitutionAlgorithm, final DittoHeaders dittoHeaders) { final Iterable<PolicyEntry> existingEntries = policy.getEntriesSet(); final Iterable<PolicyEntry> substitutedEntries = substitutePolicyEntries(existingEntries, substitutionAlgorithm, dittoHeaders); final Policy resultPolicy; if (existingEntries.equals(substitutedEntries)) { resultPolicy = policy; } else { resultPolicy = PoliciesModelFactory.newPolicyBuilder(policy).setAll(substitutedEntries).build(); } return resultPolicy; }
@Override protected void doApply(final CreatePolicy command) { // Policy not yet created - do so .. final Policy newPolicy = command.getPolicy(); final PolicyBuilder newPolicyBuilder = PoliciesModelFactory.newPolicyBuilder(newPolicy); final DittoHeaders dittoHeaders = command.getDittoHeaders(); if (!newPolicy.getLifecycle().isPresent()) { newPolicyBuilder.setLifecycle(PolicyLifecycle.ACTIVE); } final Policy newPolicyWithLifecycle = newPolicyBuilder.build(); final PoliciesValidator validator = PoliciesValidator.newInstance(newPolicyWithLifecycle); if (validator.isValid()) { final PolicyCreated policyCreated = PolicyCreated.of(newPolicyWithLifecycle, getNextRevision(), getEventTimestamp(), dittoHeaders); processEvent(policyCreated, event -> { final CreatePolicyResponse response = CreatePolicyResponse.of(policyId, PolicyPersistenceActor.this.policy, dittoHeaders); sendSuccessResponse(command, response); log.debug("Created new Policy with ID <{}>.", policyId); becomePolicyCreatedHandler(); }); } else { policyInvalid(validator.getReason().orElse(null), dittoHeaders); } }
@Override protected void doApply(final CreatePolicy command) { // Policy not yet created - do so .. final Policy newPolicy = command.getPolicy(); final PolicyBuilder newPolicyBuilder = PoliciesModelFactory.newPolicyBuilder(newPolicy); final DittoHeaders dittoHeaders = command.getDittoHeaders(); if (!newPolicy.getLifecycle().isPresent()) { newPolicyBuilder.setLifecycle(PolicyLifecycle.ACTIVE); } final Policy newPolicyWithLifecycle = newPolicyBuilder.build(); final PoliciesValidator validator = PoliciesValidator.newInstance(newPolicyWithLifecycle); if (validator.isValid()) { final PolicyCreated policyCreated = PolicyCreated.of(newPolicyWithLifecycle, getNextRevision(), getEventTimestamp(), dittoHeaders); processEvent(policyCreated, event -> { final CreatePolicyResponse response = CreatePolicyResponse.of(policyId, PolicyPersistenceActor.this.policy, dittoHeaders); sendSuccessResponse(command, response); log.debug("Created new Policy with ID <{}>.", policyId); becomePolicyCreatedHandler(); }); } else { policyInvalid(validator.getReason().orElse(null), dittoHeaders); } }
final PolicyBuilder policyBuilder = PoliciesModelFactory.newPolicyBuilder(policyId); accessControlList.getEntriesSet().forEach(aclEntry -> { final String sid = aclEntry.getAuthorizationSubject().getId();
final PolicyBuilder policyBuilder = PoliciesModelFactory.newPolicyBuilder(policyId); accessControlList.getEntriesSet().forEach(aclEntry -> { final String sid = aclEntry.getAuthorizationSubject().getId();