protected AbstractQueryParamsParserContext(ResourceRegistry resourceRegistry, JsonPath path) { resourceInformation = resourceRegistry.getEntry(path.getResourceName()).getResourceInformation(); }
private ResourceInformation getRequestedResource(JsonPath jsonPath) { ResourceRegistry resourceRegistry = moduleRegistry.getResourceRegistry(); RegistryEntry registryEntry = resourceRegistry.getEntry(jsonPath.getResourceName()); if (registryEntry == null) { throw new RepositoryNotFoundException(jsonPath.getResourceName()); } String elementName = jsonPath.getElementName(); if (elementName != null && !elementName.equals(jsonPath.getResourceName())) { ResourceField relationshipField = registryEntry.getResourceInformation().findRelationshipFieldByName(elementName); if (relationshipField == null) { throw new ResourceFieldNotFoundException(elementName); } String oppositeResourceType = relationshipField.getOppositeResourceType(); return resourceRegistry.getEntry(oppositeResourceType).getResourceInformation(); }else { return registryEntry.getResourceInformation(); } }
RepositoryMethodParameterProvider parameterProvider, Document requestDocument) { String resourceEndpointName = jsonPath.getResourceName(); RegistryEntry endpointRegistryEntry = resourceRegistry.getEntry(resourceEndpointName); if (endpointRegistryEntry == null) {
@Override public Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document requestBody) { String resourceName = jsonPath.getResourceName(); PathIds resourceIds = jsonPath.getIds(); RegistryEntry registryEntry = resourceRegistry.getEntry(resourceName); Serializable castedResourceId = getResourceId(resourceIds, registryEntry); String elementName = jsonPath.getElementName(); ResourceField relationshipField = registryEntry.getResourceInformation().findRelationshipFieldByName(elementName); if (relationshipField == null) { throw new ResourceFieldNotFoundException(elementName); } Class<?> baseRelationshipFieldClass = relationshipField.getType(); Class<?> relationshipFieldClass = Generics.getResourceClass(relationshipField.getGenericType(), baseRelationshipFieldClass); RelationshipRepositoryAdapter relationshipRepositoryForClass = registryEntry .getRelationshipRepositoryForClass(relationshipFieldClass, parameterProvider); JsonApiResponse entities; if (Iterable.class.isAssignableFrom(baseRelationshipFieldClass)) { entities = relationshipRepositoryForClass.findManyTargets(castedResourceId, relationshipField, queryAdapter); } else { entities = relationshipRepositoryForClass.findOneTarget(castedResourceId, relationshipField, queryAdapter); } Document responseDocument = documentMapper.toDocument(entities, queryAdapter, parameterProvider); return new Response(responseDocument, 200); }
@Override public Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document requestBody) { String resourceName = jsonPath.getResourceName(); PathIds resourceIds = jsonPath.getIds(); RegistryEntry registryEntry = resourceRegistry.getEntry(resourceName); Serializable castedResourceId = getResourceId(resourceIds, registryEntry); String elementName = jsonPath.getElementName(); ResourceField relationshipField = registryEntry.getResourceInformation().findRelationshipFieldByName(elementName); if (relationshipField == null) { throw new ResourceFieldNotFoundException(elementName); } Class<?> baseRelationshipFieldClass = relationshipField.getType(); Class<?> relationshipFieldClass = Generics.getResourceClass(relationshipField.getGenericType(), baseRelationshipFieldClass); RelationshipRepositoryAdapter relationshipRepositoryForClass = registryEntry.getRelationshipRepositoryForClass(relationshipFieldClass, parameterProvider); JsonApiResponse entities; if (Iterable.class.isAssignableFrom(baseRelationshipFieldClass)) { entities = relationshipRepositoryForClass.findManyTargets(castedResourceId, relationshipField, queryAdapter); } else { entities = relationshipRepositoryForClass.findOneTarget(castedResourceId, relationshipField, queryAdapter); } Document responseDocument = documentMapper.toDocument(entities, queryAdapter, parameterProvider); // FIXME related vs self // return explicit { data : null } if values found if (!responseDocument.getData().isPresent()) { responseDocument.setData(Nullable.nullValue()); } return new Response(responseDocument, 200); }
@Override public Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document document){ String resourceEndpointName = jsonPath.getResourceName(); RegistryEntry endpointRegistryEntry = resourceRegistry.getEntry(resourceEndpointName); if (endpointRegistryEntry == null) {
@Override public final Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document requestBody) { String resourceName = jsonPath.getResourceName(); PathIds resourceIds = jsonPath.getIds(); RegistryEntry registryEntry = resourceRegistry.getEntry(resourceName);
@Override public Response handle(JsonPath jsonPath, QueryAdapter queryAdapter, RepositoryMethodParameterProvider parameterProvider, Document requestBody) { String resourceEndpointName = jsonPath.getResourceName(); PathIds resourceIds = jsonPath.getIds(); RegistryEntry endpointRegistryEntry = resourceRegistry.getEntry(resourceEndpointName);