This is an automated email from the ASF dual-hosted git repository. danhaywood pushed a commit to branch CAUSEWAY-3676 in repository https://gitbox.apache.org/repos/asf/causeway.git
commit 04755e46b056c0fb2e36ec263749472c7ad33e0b Author: danhaywood <[email protected]> AuthorDate: Thu Jan 25 17:32:05 2024 +0000 CAUSEWAY-3676: removes duplication, extract BookmarkedPojoFetcher --- .../model/domain/BookmarkedPojoFetcher.java | 44 ++++++++++++++++++++++ .../viewer/graphql/model/domain/GqlvAction.java | 14 +------ .../graphql/model/domain/GqlvActionParam.java | 17 +-------- .../graphql/model/domain/GqlvActionParams.java | 15 +------- .../graphql/model/domain/GqlvCollection.java | 15 +------- .../viewer/graphql/model/domain/GqlvProperty.java | 14 +------ 6 files changed, 50 insertions(+), 69 deletions(-) diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojoFetcher.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojoFetcher.java new file mode 100644 index 0000000000..ac0c3ed2e1 --- /dev/null +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/BookmarkedPojoFetcher.java @@ -0,0 +1,44 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.causeway.viewer.graphql.model.domain; + +import graphql.schema.DataFetcher; +import graphql.schema.DataFetchingEnvironment; + +import lombok.val; + +import org.apache.causeway.applib.services.bookmark.BookmarkService; + +class BookmarkedPojoFetcher implements DataFetcher<Object> { + private final BookmarkService bookmarkService; + + BookmarkedPojoFetcher(BookmarkService bookmarkService) { + this.bookmarkService = bookmarkService; + } + + @Override + public Object get(DataFetchingEnvironment dataFetchingEnvironment) { + + val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); + + return bookmarkService.bookmarkFor(sourcePojo) + .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) + .orElseThrow(); + } +} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java index 7ee0ce2b84..e7a85406f1 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAction.java @@ -172,7 +172,7 @@ public class GqlvAction public void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(getField()), - new Fetcher()); + new BookmarkedPojoFetcher(bookmarkService)); hidden.addDataFetcher(); disabled.addDataFetcher(); @@ -183,18 +183,6 @@ public class GqlvAction } } - private class Fetcher implements DataFetcher<Object> { - @Override - public Object get(DataFetchingEnvironment dataFetchingEnvironment) { - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - return bookmarkService.bookmarkFor(sourcePojo) - .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) - .orElseThrow(); - } - } - @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java index e2a8ec9487..56d855da44 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParam.java @@ -23,11 +23,8 @@ import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.util.TypeNames; import lombok.Getter; -import lombok.val; import lombok.extern.log4j.Log4j2; -import graphql.schema.DataFetcher; -import graphql.schema.DataFetchingEnvironment; import graphql.schema.FieldCoordinates; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; @@ -85,24 +82,12 @@ public class GqlvActionParam implements GqlvActionParamDisabledHolder { public void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(field), - new Fetcher()); + new BookmarkedPojoFetcher(bookmarkService)); hidden.addDataFetcher(); disabled.addDataFetcher(); } - private class Fetcher implements DataFetcher<Object> { - @Override - public Object get(DataFetchingEnvironment dataFetchingEnvironment) { - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - return bookmarkService.bookmarkFor(sourcePojo) - .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) - .orElseThrow(); - } - } - @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java index 826081413c..1c6bef0bc6 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParams.java @@ -99,24 +99,13 @@ public class GqlvActionParams implements GqlvActionParamHolder { void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(field), - new Fetcher()); + new BookmarkedPojoFetcher(bookmarkService)); params.forEach((id, param) -> param.addDataFetcher()); } - private class Fetcher implements DataFetcher<Object> { - @Override - public Object get(DataFetchingEnvironment dataFetchingEnvironment) { - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - return bookmarkService.bookmarkFor(sourcePojo) - .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) - .orElseThrow(); - } - } - - //@Override + @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java index f8abc10017..54525e2c1a 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollection.java @@ -84,26 +84,13 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo public void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(getField()), - new GqlvCollection.Fetcher()); + new BookmarkedPojoFetcher(bookmarkService)); hidden.addDataFetcher(); disabled.addDataFetcher(); get.addDataFetcher(); } - private class Fetcher implements DataFetcher<Object> { - @Override - public Object get(DataFetchingEnvironment dataFetchingEnvironment) { - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - return bookmarkService.bookmarkFor(sourcePojo) - .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) - .orElseThrow(); - } - } - - @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java index 12b8dc7336..cdb6b78916 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvProperty.java @@ -107,7 +107,7 @@ public class GqlvProperty public void addDataFetcher() { codeRegistryBuilder.dataFetcher( holder.coordinatesFor(getField()), - new GqlvProperty.Fetcher()); + new BookmarkedPojoFetcher(bookmarkService)); hidden.addDataFetcher(); disabled.addDataFetcher(); @@ -116,18 +116,6 @@ public class GqlvProperty validate.addDataFetcher(); } - private class Fetcher implements DataFetcher<Object> { - @Override - public Object get(DataFetchingEnvironment dataFetchingEnvironment) { - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - return bookmarkService.bookmarkFor(sourcePojo) - .map(bookmark -> new BookmarkedPojo(bookmark, bookmarkService)) - .orElseThrow(); - } - } - @Override public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) {
