You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@causeway.apache.org by da...@apache.org on 2024/02/13 00:49:27 UTC
(causeway) 09/11: CAUSEWAY-3676: factors out GqlvMetaLogicalTypeName
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 1ef567e063c7dc31b2db028028a45ef367d03a58
Author: danhaywood <da...@haywood-associates.co.uk>
AuthorDate: Mon Feb 12 23:49:36 2024 +0000
CAUSEWAY-3676: factors out GqlvMetaLogicalTypeName
---
.../viewer/graphql/model/domain/GqlvMeta.java | 14 +++-----
.../model/domain/GqlvMetaLogicalTypeName.java | 42 ++++++++++++++++++++++
2 files changed, 47 insertions(+), 9 deletions(-)
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
index 02d284a6f7..5a062264c1 100644
--- a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMeta.java
@@ -44,10 +44,10 @@ import lombok.val;
public class GqlvMeta extends GqlvAbstractCustom {
- static GraphQLFieldDefinition logicalTypeName = newFieldDefinition().name("logicalTypeName").type(nonNull(Scalars.GraphQLString)).build();
static GraphQLFieldDefinition version = newFieldDefinition().name("version").type(Scalars.GraphQLString).build();
private final GqlvMetaId metaId;
+ private final GqlvMetaLogicalTypeName metaLogicalTypeName;
private final Holder holder;
public GqlvMeta(
@@ -61,7 +61,9 @@ public class GqlvMeta extends GqlvAbstractCustom {
metaId = new GqlvMetaId(context);
addChildField(metaId.getField());
- addChildField(logicalTypeName);
+ metaLogicalTypeName = new GqlvMetaLogicalTypeName(context);
+ addChildField(metaLogicalTypeName.getField());
+
if (this.holder.getObjectSpecification().getBeanSort() == BeanSort.ENTITY) {
addChildField(version);
}
@@ -73,13 +75,7 @@ public class GqlvMeta extends GqlvAbstractCustom {
@Override
protected void addDataFetchersForChildren() {
metaId.addDataFetcher(this);
-// context.codeRegistryBuilder.dataFetcher(
-// coordinates(getGqlObjectType(), metaId.getField()),
-// (DataFetcher<Object>) environment -> environment.<Fetcher>getSource().id());
-
- context.codeRegistryBuilder.dataFetcher(
- coordinates(getGqlObjectType(), logicalTypeName),
- (DataFetcher<Object>) environment -> environment.<Fetcher>getSource().logicalTypeName());
+ metaLogicalTypeName.addDataFetcher(this);
if (holder.getObjectSpecification().getBeanSort() == BeanSort.ENTITY) {
context.codeRegistryBuilder.dataFetcher(
diff --git a/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaLogicalTypeName.java b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaLogicalTypeName.java
new file mode 100644
index 0000000000..66a1214b4f
--- /dev/null
+++ b/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMetaLogicalTypeName.java
@@ -0,0 +1,42 @@
+/*
+ * 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.Scalars;
+import graphql.schema.DataFetchingEnvironment;
+
+import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+import static graphql.schema.GraphQLNonNull.nonNull;
+
+import org.apache.causeway.viewer.graphql.model.context.Context;
+
+public class GqlvMetaLogicalTypeName extends GqlvAbstract {
+
+ public GqlvMetaLogicalTypeName(final Context context) {
+ super(context);
+
+ setField(newFieldDefinition().name("logicalTypeName").type(nonNull(Scalars.GraphQLString)).build());
+ }
+
+ @Override
+ protected String fetchData(DataFetchingEnvironment environment) {
+ return environment.<GqlvMeta.Fetcher>getSource().logicalTypeName();
+ }
+
+}