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 fe71add7b09c54ee38c3e164250945072b337e37 Author: danhaywood <[email protected]> AuthorDate: Wed Jan 24 13:07:39 2024 +0000 CAUSEWAY-3676: factors out GqlvAssociationGet --- .../graphql/model/domain/GqlvAssociation.java | 36 ---------- ...qlvPropertyGet.java => GqlvAssociationGet.java} | 39 ++++++----- ...etHolder.java => GqlvAssociationGetHolder.java} | 6 +- .../graphql/model/domain/GqlvCollection.java | 3 +- .../graphql/model/domain/GqlvCollectionGet.java | 79 +++------------------ .../model/domain/GqlvCollectionGetHolder.java | 3 +- .../graphql/model/domain/GqlvCollectionSimple.java | 60 ---------------- .../graphql/model/domain/GqlvDomainObject.java | 9 --- .../viewer/graphql/model/domain/GqlvProperty.java | 2 +- .../graphql/model/domain/GqlvPropertyGet.java | 80 +++------------------- .../model/domain/GqlvPropertyGetHolder.java | 3 +- 11 files changed, 49 insertions(+), 271 deletions(-) diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java index d372fae02d..4b8f31bf96 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociation.java @@ -57,40 +57,4 @@ public abstract class GqlvAssociation<T extends ObjectAssociation, H extends Gql return getObjectMember(); } - public void addDataFetcher() { - - final ObjectAssociation association = getObjectAssociation(); - final ObjectSpecification fieldObjectSpecification = association.getElementType(); - final BeanSort beanSort = fieldObjectSpecification.getBeanSort(); - - switch (beanSort) { - - case VALUE: - case VIEW_MODEL: - case ENTITY: - - codeRegistryBuilder.dataFetcher( - getHolder().coordinatesFor(getField()), - (DataFetcher<Object>) environment -> { - - Object domainObjectInstance = environment.getSource(); - - Class<?> domainObjectInstanceClass = domainObjectInstance.getClass(); - ObjectSpecification specification = specificationLoader.loadSpecification(domainObjectInstanceClass); - if (specification == null) { - return null; - } - - // TODO: probably incorrect to adapt as a singular here. - ManagedObject owner = ManagedObject.adaptSingular(specification, domainObjectInstance); - ManagedObject managedObject = association.get(owner); - - return managedObject!=null ? managedObject.getPojo() : null; - }); - - break; - - } - } - } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java similarity index 71% copy from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java copy to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java index 37ec2cf782..fb8a32d616 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java @@ -19,6 +19,9 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.ObjectAssociation; +import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; +import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import lombok.val; @@ -30,27 +33,27 @@ import graphql.schema.GraphQLOutputType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; -public class GqlvPropertyGet { +public abstract class GqlvAssociationGet<T extends ObjectAssociation> { - private final GqlvPropertyGetHolder holder; - private final GraphQLCodeRegistry.Builder codeRegistryBuilder; - private final GraphQLFieldDefinition field; + final GqlvAssociationGetHolder<T> holder; + final GraphQLCodeRegistry.Builder codeRegistryBuilder; + final SpecificationLoader specificationLoader; + final GraphQLFieldDefinition field; - - public GqlvPropertyGet( - final GqlvPropertyGetHolder holder, - final GraphQLCodeRegistry.Builder codeRegistryBuilder) { + public GqlvAssociationGet( + final GqlvAssociationGetHolder<T> holder, + final GraphQLCodeRegistry.Builder codeRegistryBuilder, + final SpecificationLoader specificationLoader) { this.holder = holder; this.codeRegistryBuilder = codeRegistryBuilder; this.field = fieldDefinition(holder); + this.specificationLoader = specificationLoader; } - private static GraphQLFieldDefinition fieldDefinition(final GqlvPropertyGetHolder holder) { - - val oneToOneAssociation = holder.getOneToOneAssociation(); + GraphQLFieldDefinition fieldDefinition(final GqlvAssociationGetHolder<T> holder) { GraphQLFieldDefinition fieldDefinition = null; - GraphQLOutputType type = TypeMapper.outputTypeFor(oneToOneAssociation); + GraphQLOutputType type = outputTypeFor(holder); if (type != null) { val fieldBuilder = newFieldDefinition() .name("get") @@ -62,13 +65,14 @@ public class GqlvPropertyGet { return fieldDefinition; } - public void addDataFetcher() { + abstract GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<T> holder); + + void addDataFetcher() { - val association = holder.getOneToOneAssociation(); + val association = holder.getObjectAssociation(); val fieldObjectSpecification = association.getElementType(); val beanSort = fieldObjectSpecification.getBeanSort(); - val specificationLoader = association.getSpecificationLoader(); switch (beanSort) { case VALUE: @@ -84,14 +88,13 @@ public class GqlvPropertyGet { } } - private Object get(final DataFetchingEnvironment dataFetchingEnvironment) { + Object get(final DataFetchingEnvironment dataFetchingEnvironment) { - val association = holder.getOneToOneAssociation(); + val association = holder.getObjectAssociation(); val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); val sourcePojoClass = sourcePojo.getClass(); - val specificationLoader = association.getSpecificationLoader(); val objectSpecification = specificationLoader.loadSpecification(sourcePojoClass); if (objectSpecification == null) { // not expected diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java similarity index 81% copy from incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java copy to incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java index 6929661150..60374717b1 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java @@ -18,9 +18,9 @@ */ package org.apache.causeway.viewer.graphql.model.domain; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; +import org.apache.causeway.core.metamodel.spec.feature.ObjectAssociation; -public interface GqlvPropertyGetHolder extends GqlvHolder { +public interface GqlvAssociationGetHolder<T extends ObjectAssociation> extends GqlvHolder { - OneToOneAssociation getOneToOneAssociation(); + T getObjectAssociation(); } 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 488223bd98..f8abc10017 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 @@ -20,7 +20,6 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; -import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.util.TypeNames; import lombok.val; @@ -57,7 +56,7 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo this.hidden = new GqlvMemberHidden(this, codeRegistryBuilder); this.disabled = new GqlvMemberDisabled(this, codeRegistryBuilder); - this.get = new GqlvCollectionGet(this, codeRegistryBuilder); + this.get = new GqlvCollectionGet(this, codeRegistryBuilder, specificationLoader); this.gqlObjectType = gqlObjectTypeBuilder.build(); diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java index faec3d340a..d71e317bcd 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGet.java @@ -19,6 +19,8 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; +import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import lombok.val; @@ -30,80 +32,19 @@ import graphql.schema.GraphQLOutputType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; -public class GqlvCollectionGet { - - private final GqlvCollectionGetHolder holder; - private final GraphQLCodeRegistry.Builder codeRegistryBuilder; - private final GraphQLFieldDefinition field; - +public class GqlvCollectionGet extends GqlvAssociationGet<OneToManyAssociation> { public GqlvCollectionGet( final GqlvCollectionGetHolder holder, - final GraphQLCodeRegistry.Builder codeRegistryBuilder) { - this.holder = holder; - this.codeRegistryBuilder = codeRegistryBuilder; - this.field = fieldDefinition(holder); - } - - private static GraphQLFieldDefinition fieldDefinition(final GqlvCollectionGetHolder holder) { - - val oneToManyAssociation = holder.getOneToManyAssociation(); - - GraphQLFieldDefinition fieldDefinition = null; - GraphQLOutputType type = TypeMapper.listTypeForElementTypeOf(oneToManyAssociation); - if (type != null) { - val fieldBuilder = newFieldDefinition() - .name("get") - .type(type); - fieldDefinition = fieldBuilder.build(); - - holder.addField(fieldDefinition); - } - return fieldDefinition; - } - - public void addDataFetcher() { - - val association = holder.getOneToManyAssociation(); - val fieldObjectSpecification = association.getElementType(); - val beanSort = fieldObjectSpecification.getBeanSort(); - - switch (beanSort) { - - case VALUE: - case VIEW_MODEL: - case ENTITY: - - codeRegistryBuilder.dataFetcher( - holder.coordinatesFor(field), - this::get); - - break; - - } + final GraphQLCodeRegistry.Builder codeRegistryBuilder, + final SpecificationLoader specificationLoader) { + super(holder, codeRegistryBuilder, specificationLoader); } - private Object get(final DataFetchingEnvironment dataFetchingEnvironment) { - - val association = holder.getOneToManyAssociation(); - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - val sourcePojoClass = sourcePojo.getClass(); - val specificationLoader = association.getSpecificationLoader(); - val objectSpecification = specificationLoader.loadSpecification(sourcePojoClass); - if (objectSpecification == null) { - // not expected - return null; - } - - // TODO: probably incorrect to adapt as a singular here? - val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); - val resultManagedObject = association.get(managedObject); - - return resultManagedObject != null - ? resultManagedObject.getPojo() - : null; + @Override + GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<OneToManyAssociation> holder) { + val oneToManyAssociation = holder.getObjectAssociation(); + return TypeMapper.listTypeForElementTypeOf(oneToManyAssociation); } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java index be3dc7a899..326a27654c 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java @@ -20,7 +20,6 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; -public interface GqlvCollectionGetHolder extends GqlvHolder { +public interface GqlvCollectionGetHolder extends GqlvAssociationGetHolder<OneToManyAssociation> { - OneToManyAssociation getOneToManyAssociation(); } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java deleted file mode 100644 index eb4a867652..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionSimple.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * 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 org.springframework.lang.Nullable; - -import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; -import org.apache.causeway.viewer.graphql.model.types.TypeMapper; - -import graphql.schema.GraphQLCodeRegistry; -import graphql.schema.GraphQLFieldDefinition; -import graphql.schema.GraphQLList; - -import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; - -public class GqlvCollectionSimple extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> { - - public GqlvCollectionSimple( - final GqlvCollectionHolder domainObject, - final OneToManyAssociation oneToManyAssociation, - final GraphQLCodeRegistry.Builder codeRegistryBuilder - ) { - super(domainObject, oneToManyAssociation, fieldDefinition(domainObject, oneToManyAssociation), codeRegistryBuilder); - } - - @Nullable private static GraphQLFieldDefinition fieldDefinition( - final GqlvCollectionHolder holder, - final OneToManyAssociation otom) { - GraphQLList type = TypeMapper.listTypeForElementTypeOf(otom); - GraphQLFieldDefinition fieldDefinition = null; - if (type != null) { - fieldDefinition = newFieldDefinition() - .name(otom.getId()) - .type(type).build(); - holder.addField(fieldDefinition); - } - return fieldDefinition; - } - - public OneToManyAssociation getOneToManyAssociation() { - return getObjectAssociation(); - } - -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java index 13b328cfd9..fc831fad44 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainObject.java @@ -65,7 +65,6 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G private final SortedMap<String, GqlvProperty> properties = new TreeMap<>(); private final SortedMap<String, GqlvCollection> collections = new TreeMap<>(); - private final SortedMap<String, GqlvCollectionSimple> collectionSimples = new TreeMap<>(); private final Map<String, GqlvAction> safeActions = new TreeMap<>(); private GraphQLObjectType gqlObjectType; @@ -132,13 +131,6 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G collections.put(collectionId, collection); } } -// GqlvCollectionSimple collection = new GqlvCollectionSimple(this, otom, codeRegistryBuilder); -// if (collection.hasFieldDefinition()) { -// String collectionId = collection.getId(); -// if (!collectionSimples.containsKey(collectionId)) { -// collectionSimples.put(collectionId, collection); -// } -// } } private void addAction(final ObjectAction objectAction) { @@ -177,7 +169,6 @@ public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, G meta.addDataFetchers(); properties.forEach((id, property) -> property.addDataFetcher()); collections.forEach((id, collection) -> collection.addDataFetcher()); -// collectionSimples.forEach((id, collection) -> collection.addDataFetcher()); safeActions.forEach((id, action) -> action.addDataFetcher()); mutations.addDataFetchers(); } 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 2c6677b117..14c4ee2606 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 @@ -57,7 +57,7 @@ public class GqlvProperty extends GqlvAssociation<OneToOneAssociation, GqlvPrope this.hidden = new GqlvMemberHidden(this, codeRegistryBuilder); this.disabled = new GqlvMemberDisabled(this, codeRegistryBuilder); - this.get = new GqlvPropertyGet(this, codeRegistryBuilder); + this.get = new GqlvPropertyGet(this, codeRegistryBuilder, specificationLoader); this.gqlObjectType = gqlObjectTypeBuilder.build(); diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java index 37ec2cf782..d67944f14f 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGet.java @@ -19,6 +19,9 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; +import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; +import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import lombok.val; @@ -30,80 +33,19 @@ import graphql.schema.GraphQLOutputType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; -public class GqlvPropertyGet { - - private final GqlvPropertyGetHolder holder; - private final GraphQLCodeRegistry.Builder codeRegistryBuilder; - private final GraphQLFieldDefinition field; - +public class GqlvPropertyGet extends GqlvAssociationGet<OneToOneAssociation> { public GqlvPropertyGet( final GqlvPropertyGetHolder holder, - final GraphQLCodeRegistry.Builder codeRegistryBuilder) { - this.holder = holder; - this.codeRegistryBuilder = codeRegistryBuilder; - this.field = fieldDefinition(holder); - } - - private static GraphQLFieldDefinition fieldDefinition(final GqlvPropertyGetHolder holder) { - - val oneToOneAssociation = holder.getOneToOneAssociation(); - - GraphQLFieldDefinition fieldDefinition = null; - GraphQLOutputType type = TypeMapper.outputTypeFor(oneToOneAssociation); - if (type != null) { - val fieldBuilder = newFieldDefinition() - .name("get") - .type(type); - fieldDefinition = fieldBuilder.build(); - - holder.addField(fieldDefinition); - } - return fieldDefinition; - } - - public void addDataFetcher() { - - val association = holder.getOneToOneAssociation(); - val fieldObjectSpecification = association.getElementType(); - val beanSort = fieldObjectSpecification.getBeanSort(); - - val specificationLoader = association.getSpecificationLoader(); - switch (beanSort) { - - case VALUE: - case VIEW_MODEL: - case ENTITY: - - codeRegistryBuilder.dataFetcher( - holder.coordinatesFor(field), - this::get); - - break; - - } + final GraphQLCodeRegistry.Builder codeRegistryBuilder, + final SpecificationLoader specificationLoader) { + super(holder, codeRegistryBuilder, specificationLoader); } - private Object get(final DataFetchingEnvironment dataFetchingEnvironment) { - - val association = holder.getOneToOneAssociation(); - - val sourcePojo = BookmarkedPojo.sourceFrom(dataFetchingEnvironment); - - val sourcePojoClass = sourcePojo.getClass(); - val specificationLoader = association.getSpecificationLoader(); - val objectSpecification = specificationLoader.loadSpecification(sourcePojoClass); - if (objectSpecification == null) { - // not expected - return null; - } - - val managedObject = ManagedObject.adaptSingular(objectSpecification, sourcePojo); - val resultManagedObject = association.get(managedObject); - - return resultManagedObject != null - ? resultManagedObject.getPojo() - : null; + @Override + GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<OneToOneAssociation> holder) { + val oneToOneAssociation = holder.getObjectAssociation(); + return TypeMapper.outputTypeFor(oneToOneAssociation); } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java index 6929661150..0f68abb1a6 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java @@ -20,7 +20,6 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; -public interface GqlvPropertyGetHolder extends GqlvHolder { +public interface GqlvPropertyGetHolder extends GqlvAssociationGetHolder<OneToOneAssociation> { - OneToOneAssociation getOneToOneAssociation(); }
