private boolean patch(Data<Resource> data, RequestScope requestScope) { boolean isUpdated; if (relationshipType.isToMany()) { Collection<Resource> resources = data.get(); if (resources == null) { return false; } if (!resources.isEmpty()) { isUpdated = record.updateRelation( relationshipName, new Relationship(null, new Data<>(resources)).toPersistentResources(requestScope)); } else { isUpdated = record.clearRelation(relationshipName); } } else if (relationshipType.isToOne()) { Resource resource = data.get().iterator().next(); if (resource != null) { isUpdated = record.updateRelation( relationshipName, new Relationship(null, new Data<>(resource)).toPersistentResources(requestScope)); } else { isUpdated = record.clearRelation(relationshipName); } } else { throw new IllegalStateException("Bad relationship type"); } return isUpdated; }
private boolean post(Data<Resource> data, RequestScope requestScope) { Collection<Resource> resources = data.get(); if (resources == null) { return false; } resources .stream() .forEachOrdered( resource -> record.addRelation(relationshipName, resource.toPersistentResource(requestScope))); return true; }