@Override public JsonPointer getResourcePath() { final String path = "/entries/" + label + "/subjects/" + subject.getId(); return JsonPointer.of(path); }
@Override public JsonPointer getResourcePath() { final String path = "/entries/" + label + "/subjects/" + subject.getId(); return JsonPointer.of(path); }
@Override public JsonPointer getResourcePath() { final String path = "/entries/" + label + "/subjects/" + subject.getId(); return JsonPointer.of(path); }
@Override public JsonPointer getResourcePath() { final String path = "/entries/" + label + "/subjects/" + subject.getId(); return JsonPointer.of(path); }
@Override public JsonPointer getResourcePath() { final String path = "/entries/" + label + "/subjects/" + subject.getId(); return JsonPointer.of(path); }
@Override public Subjects setSubject(final Subject subject) { checkNotNull(subject, "subject to set"); Subjects result = this; final Subject existingSubject = subjects.get(subject.getId()); if (!Objects.equals(existingSubject, subject)) { result = createNewSubjectsWithNewSubject(subject); } return result; }
@Override public ImmutablePolicyBuilder removeSubjectFor(final CharSequence label, final Subject subject) { checkNotNull(subject, "Subject"); final Map<SubjectId, Subject> existingSubject = retrieveExistingSubjects(label); existingSubject.remove(subject.getId()); return this; }
private Subjects createNewSubjectsWithNewSubject(final Subject newSubject) { final Map<SubjectId, Subject> subjectsCopy = copySubjects(); subjectsCopy.put(newSubject.getId(), newSubject); return new ImmutableSubjects(subjectsCopy); }
@Override public ImmutablePolicyBuilder setSubjectFor(final CharSequence label, final Subject subject) { checkNotNull(subject, "Subject to be set"); final Map<SubjectId, Subject> existingSubject = retrieveExistingSubjects(label); existingSubject.put(subject.getId(), subject); return this; }
@Override protected Optional<Subject> determineETagEntity(final ModifySubject command) { return Optional.ofNullable(policy) .flatMap(p -> p.getEntryFor(command.getLabel())) .map(PolicyEntry::getSubjects) .flatMap(s -> s.getSubject(command.getSubject().getId())); } }
@Override public JsonPointer getResourcePath() { if (subjectCreated == null) { return JsonPointer.empty(); } final String path = "/entries/" + label + "/subjects/" + subjectCreated.getId(); return JsonPointer.of(path); }
@Override protected Optional<Subject> determineETagEntity(final ModifySubject command) { return Optional.ofNullable(policy) .flatMap(p -> p.getEntryFor(command.getLabel())) .map(PolicyEntry::getSubjects) .flatMap(s -> s.getSubject(command.getSubject().getId())); } }
@Override public ImmutablePolicyBuilder setSubjectsFor(final CharSequence label, final Subjects subjects) { checkNotNull(subjects, "Subjects to be set"); final Map<SubjectId, Subject> existingSubject = retrieveExistingSubjects(label); subjects.forEach(subject -> existingSubject.put(subject.getId(), subject)); return this; }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(PolicyModifyCommandResponse.JsonFields.JSON_POLICY_ID, policyId, predicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); if (null != subjectCreated) { jsonObjectBuilder.set(JSON_SUBJECT_ID, subjectCreated.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subjectCreated.toJson(schemaVersion, thePredicate), predicate); } }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(PolicyModifyCommand.JsonFields.JSON_POLICY_ID, policyId, predicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }
@Override protected void appendPayload(final JsonObjectBuilder jsonObjectBuilder, final JsonSchemaVersion schemaVersion, final Predicate<JsonField> thePredicate) { final Predicate<JsonField> predicate = schemaVersion.and(thePredicate); jsonObjectBuilder.set(PolicyModifyCommand.JsonFields.JSON_POLICY_ID, policyId, predicate); jsonObjectBuilder.set(JSON_LABEL, label.toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT_ID, subject.getId().toString(), predicate); jsonObjectBuilder.set(JSON_SUBJECT, subject.toJson(schemaVersion, thePredicate), predicate); }