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 46965cdaac81182caa2d520e001fe5fd5f9fa3bd Author: danhaywood <[email protected]> AuthorDate: Thu Jan 25 17:52:22 2024 +0000 CAUSEWAY-3676: moves Holder interfaces to be nested static in the types to which they relate --- .../viewer/graphql/model/domain/GqlvAction.java | 21 +++++++++----- .../graphql/model/domain/GqlvActionHolder.java | 22 --------------- .../graphql/model/domain/GqlvActionInvoke.java | 12 ++++++-- .../model/domain/GqlvActionInvokeHolder.java | 27 ------------------ .../graphql/model/domain/GqlvActionParam.java | 28 ++++++++++++++++--- .../model/domain/GqlvActionParamDisabled.java | 15 ++++++++-- .../domain/GqlvActionParamDisabledHolder.java | 28 ------------------- .../model/domain/GqlvActionParamHidden.java | 14 ++++++++-- .../model/domain/GqlvActionParamHolder.java | 25 ----------------- .../graphql/model/domain/GqlvActionParams.java | 32 ++++++++++++++++------ .../model/domain/GqlvActionParamsHolder.java | 28 ------------------- .../graphql/model/domain/GqlvActionValidate.java | 12 ++++++-- .../model/domain/GqlvActionValidateHolder.java | 26 ------------------ .../graphql/model/domain/GqlvAssociation.java | 9 +++--- .../graphql/model/domain/GqlvAssociationGet.java | 17 ++++++++---- .../model/domain/GqlvAssociationGetHolder.java | 26 ------------------ .../model/domain/GqlvAssociationHolder.java | 23 ---------------- .../graphql/model/domain/GqlvCollection.java | 17 ++++++++---- .../graphql/model/domain/GqlvCollectionGet.java | 11 ++++---- .../model/domain/GqlvCollectionGetHolder.java | 25 ----------------- .../graphql/model/domain/GqlvCollectionHolder.java | 23 ---------------- .../graphql/model/domain/GqlvDomainObject.java | 2 +- .../graphql/model/domain/GqlvDomainService.java | 7 +---- .../viewer/graphql/model/domain/GqlvMember.java | 8 +++++- .../graphql/model/domain/GqlvMemberDisabled.java | 13 +++++++-- .../model/domain/GqlvMemberDisabledHolder.java | 27 ------------------ .../graphql/model/domain/GqlvMemberHidden.java | 14 ++++++++-- .../model/domain/GqlvMemberHiddenHolder.java | 28 ------------------- .../graphql/model/domain/GqlvMemberHolder.java | 27 ------------------ .../viewer/graphql/model/domain/GqlvProperty.java | 27 ++++++++++++------ .../graphql/model/domain/GqlvPropertyGet.java | 14 ++++++---- .../model/domain/GqlvPropertyGetHolder.java | 25 ----------------- .../graphql/model/domain/GqlvPropertyHolder.java | 23 ---------------- .../graphql/model/domain/GqlvPropertySet.java | 19 ++++++++++--- .../model/domain/GqlvPropertySetHolder.java | 28 ------------------- .../graphql/model/domain/GqlvPropertyValidate.java | 15 ++++++++-- .../model/domain/GqlvPropertyValidateHolder.java | 28 ------------------- 37 files changed, 220 insertions(+), 526 deletions(-) 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 e7a85406f1..d482c3e1c7 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 @@ -43,12 +43,12 @@ import static graphql.schema.GraphQLObjectType.newObject; @Log4j2 public class GqlvAction - extends GqlvMember<ObjectAction, GqlvActionHolder> - implements GqlvMemberHiddenHolder, - GqlvMemberDisabledHolder, - GqlvActionInvokeHolder, - GqlvActionValidateHolder, - GqlvActionParamsHolder { + extends GqlvMember<ObjectAction, GqlvAction.Holder> + implements GqlvMemberHidden.Holder, + GqlvMemberDisabled.Holder, + GqlvActionInvoke.Holder, + GqlvActionValidate.Holder, + GqlvActionParams.Holder { private final GraphQLObjectType.Builder gqlObjectTypeBuilder; private final GraphQLObjectType gqlObjectType; @@ -63,7 +63,7 @@ public class GqlvAction private final BookmarkService bookmarkService; public GqlvAction( - final GqlvActionHolder holder, + final Holder holder, final ObjectAction objectAction, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService @@ -158,6 +158,11 @@ public class GqlvAction .build(); } + @Override + public ObjectSpecification getObjectSpecification() { + return holder.getObjectSpecification(); + } + @Override public ObjectAction getObjectAction() { return getObjectMember(); @@ -189,4 +194,6 @@ public class GqlvAction return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } + public interface Holder extends GqlvMember.Holder { + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java deleted file mode 100644 index c974fc4c5d..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionHolder.java +++ /dev/null @@ -1,22 +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; - -public interface GqlvActionHolder extends GqlvMemberHolder { -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java index c5f6adaa88..aaf978202e 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvoke.java @@ -44,13 +44,13 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @Log4j2 public class GqlvActionInvoke { - private final GqlvActionInvokeHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLFieldDefinition field; private final BookmarkService bookmarkService; public GqlvActionInvoke( - final GqlvActionInvokeHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService) { this.holder = holder; @@ -59,7 +59,7 @@ public class GqlvActionInvoke { this.bookmarkService = bookmarkService; } - private static GraphQLFieldDefinition fieldDefinition(final GqlvActionInvokeHolder holder) { + private static GraphQLFieldDefinition fieldDefinition(final Holder holder) { val objectAction = holder.getObjectAction(); @@ -162,4 +162,10 @@ public class GqlvActionInvoke { } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + ObjectAction getObjectAction(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java deleted file mode 100644 index d8d91cfb70..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionInvokeHolder.java +++ /dev/null @@ -1,27 +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.apache.causeway.core.metamodel.spec.feature.ObjectAction; - -public interface GqlvActionInvokeHolder extends GqlvHolder { - - - ObjectAction getObjectAction(); -} 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 56d855da44..4d7efa3c31 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 @@ -19,6 +19,8 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.BookmarkService; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.util.TypeNames; @@ -34,9 +36,9 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; @Log4j2 -public class GqlvActionParam implements GqlvActionParamDisabledHolder { +public class GqlvActionParam implements GqlvActionParamDisabled.Holder, GqlvActionParamHidden.Holder { - @Getter private final GqlvActionParamHolder holder; + @Getter private final Holder holder; @Getter private final ObjectActionParameter objectActionParameter; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; @@ -50,7 +52,7 @@ public class GqlvActionParam implements GqlvActionParamDisabledHolder { private final GraphQLFieldDefinition field; public GqlvActionParam( - final GqlvActionParamHolder holder, + final Holder holder, final ObjectActionParameter objectActionParameter, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService @@ -72,8 +74,17 @@ public class GqlvActionParam implements GqlvActionParamDisabledHolder { .build()); } + @Override + public ObjectSpecification getObjectSpecification() { + return holder.getObjectSpecification(); + } + + @Override + public ObjectAction getObjectAction() { + return holder.getObjectAction(); + } - // @Override + @Override public GraphQLFieldDefinition addField(GraphQLFieldDefinition field) { gqlObjectTypeBuilder.field(field); return field; @@ -94,4 +105,13 @@ public class GqlvActionParam implements GqlvActionParamDisabledHolder { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } + public static interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + ObjectAction getObjectAction(); + + GqlvActionParams.Holder getHolder(); + + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java index a4bd003669..0a95d08ab7 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabled.java @@ -22,7 +22,9 @@ import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.consent.Consent; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; +import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import lombok.val; @@ -40,14 +42,14 @@ import static org.apache.causeway.viewer.graphql.model.domain.GqlvAction.addGqlA @Log4j2 public class GqlvActionParamDisabled { - private final GqlvActionParamDisabledHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final BookmarkService bookmarkService; private final GraphQLFieldDefinition field; public GqlvActionParamDisabled( - final GqlvActionParamDisabledHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService) { this.holder = holder; @@ -94,4 +96,13 @@ public class GqlvActionParamDisabled { Consent usable = objectActionParameter.isUsable(actionInteractionHead, argumentManagedObjects, InteractionInitiatedBy.USER); return usable.isVetoed() ? usable.getReasonAsString().orElse("Disabled") : null; } + + public interface Holder extends GqlvHolder { + + GqlvActionParam.Holder getHolder(); + + ObjectSpecification getObjectSpecification(); + ObjectAction getObjectAction(); + ObjectActionParameter getObjectActionParameter(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabledHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabledHolder.java deleted file mode 100644 index 6feb0bb344..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamDisabledHolder.java +++ /dev/null @@ -1,28 +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.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; - -public interface GqlvActionParamDisabledHolder extends GqlvHolder { - - GqlvActionParamHolder getHolder(); - - ObjectActionParameter getObjectActionParameter(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java index 07a3a1a48b..768f699600 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHidden.java @@ -23,6 +23,7 @@ import org.apache.causeway.core.metamodel.consent.Consent; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; +import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import static org.apache.causeway.viewer.graphql.model.domain.GqlvAction.addGqlArguments; @@ -39,14 +40,14 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @Log4j2 public class GqlvActionParamHidden { - private final GqlvActionParamDisabledHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final BookmarkService bookmarkService; private final GraphQLFieldDefinition field; public GqlvActionParamHidden( - final GqlvActionParamDisabledHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService) { this.holder = holder; @@ -92,4 +93,13 @@ public class GqlvActionParamHidden { Consent visible = objectActionParameter.isVisible(actionInteractionHead, argumentManagedObjects, InteractionInitiatedBy.USER); return visible.isVetoed(); } + + public interface Holder extends GqlvHolder { + + GqlvActionParam.Holder getHolder(); + + ObjectAction getObjectAction(); + + ObjectActionParameter getObjectActionParameter(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHolder.java deleted file mode 100644 index 3a70f186fc..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamHolder.java +++ /dev/null @@ -1,25 +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; - -public interface GqlvActionParamHolder extends GqlvHolder { - - GqlvActionParamsHolder getHolder(); - -} 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 1c6bef0bc6..c494061d53 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 @@ -19,33 +19,29 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.BookmarkService; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.util.TypeNames; -import lombok.AccessLevel; import lombok.Getter; -import lombok.Setter; -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; import graphql.schema.GraphQLObjectType; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; @Log4j2 -public class GqlvActionParams implements GqlvActionParamHolder { +public class GqlvActionParams implements GqlvActionParam.Holder { - @Getter private final GqlvActionParamsHolder holder; + @Getter private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLObjectType.Builder gqlObjectTypeBuilder; @@ -60,7 +56,7 @@ public class GqlvActionParams implements GqlvActionParamHolder { private final Map<String, GqlvActionParam> params = new LinkedHashMap<>(); public GqlvActionParams( - final GqlvActionParamsHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService ) { @@ -81,6 +77,16 @@ public class GqlvActionParams implements GqlvActionParamHolder { : null; } + @Override + public ObjectSpecification getObjectSpecification() { + return holder.getObjectSpecification(); + } + + @Override + public ObjectAction getObjectAction() { + return holder.getObjectAction(); + } + public boolean hasParams() { return !params.isEmpty(); } @@ -110,4 +116,12 @@ public class GqlvActionParams implements GqlvActionParamHolder { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + ObjectAction getObjectAction(); + + GqlvAction.Holder getHolder(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsHolder.java deleted file mode 100644 index 5278c17d5c..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionParamsHolder.java +++ /dev/null @@ -1,28 +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.apache.causeway.core.metamodel.spec.feature.ObjectAction; - -public interface GqlvActionParamsHolder extends GqlvHolder { - - ObjectAction getObjectAction(); - - GqlvActionHolder getHolder(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidate.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidate.java index 3ee3de176f..d0052c3c23 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidate.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidate.java @@ -25,6 +25,7 @@ import org.apache.causeway.core.metamodel.consent.Consent; import org.apache.causeway.commons.collections.Can; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -42,12 +43,12 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @Log4j2 public class GqlvActionValidate { - private final GqlvActionValidateHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLFieldDefinition field; public GqlvActionValidate( - final GqlvActionValidateHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder ) { this.holder = holder; @@ -55,7 +56,7 @@ public class GqlvActionValidate { this.field = fieldDefinition(holder); } - private static GraphQLFieldDefinition fieldDefinition(final GqlvActionValidateHolder holder) { + private static GraphQLFieldDefinition fieldDefinition(final Holder holder) { val objectAction = holder.getObjectAction(); @@ -111,4 +112,9 @@ public class GqlvActionValidate { return consent.isVetoed() ? consent.getReasonAsString().orElse("Invalid") : null; } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + ObjectAction getObjectAction(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidateHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidateHolder.java deleted file mode 100644 index 9aeb23920a..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvActionValidateHolder.java +++ /dev/null @@ -1,26 +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.apache.causeway.core.metamodel.spec.feature.ObjectAction; - -public interface GqlvActionValidateHolder extends GqlvHolder { - - ObjectAction getObjectAction(); -} 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 4b8f31bf96..c665462736 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 @@ -18,16 +18,13 @@ */ package org.apache.causeway.viewer.graphql.model.domain; -import org.apache.causeway.applib.services.metamodel.BeanSort; -import org.apache.causeway.core.metamodel.object.ManagedObject; import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectAssociation; -import graphql.schema.DataFetcher; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; -public abstract class GqlvAssociation<T extends ObjectAssociation, H extends GqlvAssociationHolder> extends GqlvMember<T, H> { +public abstract class GqlvAssociation<T extends ObjectAssociation, H extends GqlvAssociation.Holder> extends GqlvMember<T, H> { public GqlvAssociation( final H holder, @@ -57,4 +54,8 @@ public abstract class GqlvAssociation<T extends ObjectAssociation, H extends Gql return getObjectMember(); } + public interface Holder extends GqlvMember.Holder { + + ObjectSpecification getObjectSpecification(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java index fb8a32d616..148020fc59 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGet.java @@ -19,10 +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.ObjectSpecification; 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; @@ -35,13 +34,13 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; public abstract class GqlvAssociationGet<T extends ObjectAssociation> { - final GqlvAssociationGetHolder<T> holder; + final Holder<T> holder; final GraphQLCodeRegistry.Builder codeRegistryBuilder; final SpecificationLoader specificationLoader; final GraphQLFieldDefinition field; public GqlvAssociationGet( - final GqlvAssociationGetHolder<T> holder, + final Holder<T> holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final SpecificationLoader specificationLoader) { this.holder = holder; @@ -50,7 +49,7 @@ public abstract class GqlvAssociationGet<T extends ObjectAssociation> { this.specificationLoader = specificationLoader; } - GraphQLFieldDefinition fieldDefinition(final GqlvAssociationGetHolder<T> holder) { + GraphQLFieldDefinition fieldDefinition(final Holder<T> holder) { GraphQLFieldDefinition fieldDefinition = null; GraphQLOutputType type = outputTypeFor(holder); @@ -65,7 +64,7 @@ public abstract class GqlvAssociationGet<T extends ObjectAssociation> { return fieldDefinition; } - abstract GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<T> holder); + abstract GraphQLOutputType outputTypeFor(Holder<T> holder); void addDataFetcher() { @@ -109,4 +108,10 @@ public abstract class GqlvAssociationGet<T extends ObjectAssociation> { : null; } + public interface Holder<T extends ObjectAssociation> extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + T getObjectAssociation(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java deleted file mode 100644 index 60374717b1..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationGetHolder.java +++ /dev/null @@ -1,26 +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.apache.causeway.core.metamodel.spec.feature.ObjectAssociation; - -public interface GqlvAssociationGetHolder<T extends ObjectAssociation> extends GqlvHolder { - - T getObjectAssociation(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java deleted file mode 100644 index 5edfb3b083..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvAssociationHolder.java +++ /dev/null @@ -1,23 +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; - -public interface GqlvAssociationHolder extends GqlvMemberHolder { - -} 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 54525e2c1a..4317e03449 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 @@ -19,13 +19,10 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.BookmarkService; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; import org.apache.causeway.viewer.graphql.model.util.TypeNames; -import lombok.val; - -import graphql.schema.DataFetcher; -import graphql.schema.DataFetchingEnvironment; import graphql.schema.FieldCoordinates; import graphql.schema.GraphQLCodeRegistry; import graphql.schema.GraphQLFieldDefinition; @@ -34,7 +31,7 @@ import graphql.schema.GraphQLObjectType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; -public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCollectionHolder> implements GqlvCollectionGetHolder, GqlvMemberHiddenHolder, GqlvMemberDisabledHolder { +public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCollection.Holder> implements GqlvCollectionGet.Holder, GqlvMemberHidden.Holder, GqlvMemberDisabled.Holder { private final GraphQLObjectType.Builder gqlObjectTypeBuilder; private final GraphQLObjectType gqlObjectType; @@ -44,7 +41,7 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo private final BookmarkService bookmarkService; public GqlvCollection( - final GqlvCollectionHolder domainObject, + final Holder domainObject, final OneToManyAssociation oneToManyAssociation, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService @@ -70,6 +67,10 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo ); } + @Override + public ObjectSpecification getObjectSpecification() { + return holder.getObjectSpecification(); + } public OneToManyAssociation getOneToManyAssociation() { return getObjectAssociation(); @@ -95,4 +96,8 @@ public class GqlvCollection extends GqlvAssociation<OneToManyAssociation, GqlvCo public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } + + public interface Holder extends GqlvAssociation.Holder { + + } } 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 d71e317bcd..8e88cda94c 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 @@ -18,16 +18,14 @@ */ package org.apache.causeway.viewer.graphql.model.domain; -import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; 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; -import graphql.schema.DataFetchingEnvironment; import graphql.schema.GraphQLCodeRegistry; -import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLOutputType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @@ -35,16 +33,19 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; public class GqlvCollectionGet extends GqlvAssociationGet<OneToManyAssociation> { public GqlvCollectionGet( - final GqlvCollectionGetHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final SpecificationLoader specificationLoader) { super(holder, codeRegistryBuilder, specificationLoader); } @Override - GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<OneToManyAssociation> holder) { + GraphQLOutputType outputTypeFor(GqlvAssociationGet.Holder<OneToManyAssociation> holder) { val oneToManyAssociation = holder.getObjectAssociation(); return TypeMapper.listTypeForElementTypeOf(oneToManyAssociation); } + public interface Holder extends GqlvAssociationGet.Holder<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 deleted file mode 100644 index 326a27654c..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionGetHolder.java +++ /dev/null @@ -1,25 +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.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation; - -public interface GqlvCollectionGetHolder extends GqlvAssociationGetHolder<OneToManyAssociation> { - -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java deleted file mode 100644 index b35649e084..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvCollectionHolder.java +++ /dev/null @@ -1,23 +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; - -public interface GqlvCollectionHolder extends GqlvAssociationHolder { - -} 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 8fab010f98..84cc2ff9ff 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 @@ -47,7 +47,7 @@ import static graphql.schema.GraphQLObjectType.newObject; /** * Exposes a domain object (view model or entity) via the GQL viewer. */ -public class GqlvDomainObject implements GqlvActionHolder, GqlvPropertyHolder, GqlvCollectionHolder, GqlvMetaHolder { +public class GqlvDomainObject implements GqlvAction.Holder, GqlvProperty.Holder, GqlvCollection.Holder, GqlvMetaHolder { @Getter private final ObjectSpecification objectSpecification; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java index 9e99eed048..a860e8884e 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvDomainService.java @@ -18,11 +18,8 @@ */ package org.apache.causeway.viewer.graphql.model.domain; -import java.util.ArrayList; import java.util.LinkedHashMap; -import java.util.List; import java.util.Map; -import java.util.concurrent.atomic.AtomicBoolean; import org.apache.causeway.applib.services.bookmark.BookmarkService; import org.apache.causeway.core.metamodel.spec.ActionScope; @@ -30,11 +27,9 @@ import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.MixedIn; import org.apache.causeway.core.metamodel.spec.feature.ObjectAction; import org.apache.causeway.core.metamodel.spec.feature.ObjectActionParameter; -import org.apache.causeway.viewer.graphql.model.registry.GraphQLTypeRegistry; import org.apache.causeway.viewer.graphql.model.util.TypeNames; import lombok.Getter; -import lombok.val; import graphql.schema.FieldCoordinates; import graphql.schema.GraphQLCodeRegistry; @@ -48,7 +43,7 @@ import static graphql.schema.GraphQLObjectType.newObject; /** * Exposes a domain service (view model or entity) via the GQL viewer. */ -public class GqlvDomainService implements GqlvActionHolder { +public class GqlvDomainService implements GqlvAction.Holder { @Getter private final ObjectSpecification objectSpecification; @Getter private final Object servicePojo; diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java index 0a6188bfdd..f8961f9dff 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMember.java @@ -18,6 +18,7 @@ */ package org.apache.causeway.viewer.graphql.model.domain; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectMember; import org.apache.causeway.core.metamodel.specloader.SpecificationLoader; @@ -29,7 +30,7 @@ import graphql.schema.GraphQLFieldDefinition; import lombok.Setter; -public abstract class GqlvMember<T extends ObjectMember, H extends GqlvMemberHolder> { +public abstract class GqlvMember<T extends ObjectMember, H extends GqlvMember.Holder> { @Getter final H holder; @Getter private final T objectMember; @@ -64,4 +65,9 @@ public abstract class GqlvMember<T extends ObjectMember, H extends GqlvMemberHol return objectMember.getFeatureIdentifier().getFullIdentityString(); } + public static interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java index d9118297fe..c6be053246 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabled.java @@ -21,6 +21,7 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.annotation.Where; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.ObjectMember; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; @@ -36,12 +37,12 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @Log4j2 public class GqlvMemberDisabled { - private final GqlvMemberDisabledHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLFieldDefinition field; public GqlvMemberDisabled( - final GqlvMemberDisabledHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder ) { this.holder = holder; @@ -49,7 +50,7 @@ public class GqlvMemberDisabled { this.field = fieldDefinition(holder); } - private static GraphQLFieldDefinition fieldDefinition(final GqlvMemberDisabledHolder holder) { + private static GraphQLFieldDefinition fieldDefinition(final Holder holder) { GraphQLFieldDefinition fieldDefinition = newFieldDefinition() @@ -89,4 +90,10 @@ public class GqlvMemberDisabled { return usable.getReasonAsString().orElse(null); } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + ObjectMember getObjectMember(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java deleted file mode 100644 index 3fde923567..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberDisabledHolder.java +++ /dev/null @@ -1,27 +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.apache.causeway.core.metamodel.spec.feature.ObjectMember; - -public interface GqlvMemberDisabledHolder extends GqlvHolder { - - - ObjectMember getObjectMember(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java index fccb4e557a..ce5f081408 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHidden.java @@ -21,6 +21,8 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.annotation.Where; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +import org.apache.causeway.core.metamodel.spec.feature.ObjectMember; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import lombok.extern.log4j.Log4j2; @@ -36,12 +38,12 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @Log4j2 public class GqlvMemberHidden { - private final GqlvMemberHiddenHolder holder; + private final Holder holder; private final GraphQLCodeRegistry.Builder codeRegistryBuilder; private final GraphQLFieldDefinition field; public GqlvMemberHidden( - final GqlvMemberHiddenHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder ) { this.holder = holder; @@ -49,7 +51,7 @@ public class GqlvMemberHidden { this.field = fieldDefinition(holder); } - private static GraphQLFieldDefinition fieldDefinition(final GqlvMemberHiddenHolder holder) { + private static GraphQLFieldDefinition fieldDefinition(final Holder holder) { GraphQLFieldDefinition fieldDefinition = newFieldDefinition() @@ -89,4 +91,10 @@ public class GqlvMemberHidden { return visibleConsent.isVetoed(); } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + ObjectMember getObjectMember(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java deleted file mode 100644 index 85b705fef4..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHiddenHolder.java +++ /dev/null @@ -1,28 +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.apache.causeway.core.metamodel.spec.feature.ObjectAction; -import org.apache.causeway.core.metamodel.spec.feature.ObjectMember; - -public interface GqlvMemberHiddenHolder extends GqlvHolder { - - - ObjectMember getObjectMember(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java deleted file mode 100644 index a342c617f7..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvMemberHolder.java +++ /dev/null @@ -1,27 +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.apache.causeway.core.metamodel.spec.ObjectSpecification; - -public interface GqlvMemberHolder extends GqlvHolder { - - ObjectSpecification getObjectSpecification(); - -} 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 cdb6b78916..f7a9ee1ef7 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 @@ -20,24 +20,23 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.applib.services.bookmark.BookmarkService; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; import org.apache.causeway.viewer.graphql.model.types.TypeMapper; import org.apache.causeway.viewer.graphql.model.util.TypeNames; import graphql.schema.*; -import lombok.val; - import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; import static graphql.schema.GraphQLObjectType.newObject; public class GqlvProperty - extends GqlvAssociation<OneToOneAssociation, GqlvPropertyHolder> - implements GqlvMemberHiddenHolder, - GqlvMemberDisabledHolder, - GqlvPropertyGetHolder, - GqlvPropertySetHolder, - GqlvPropertyValidateHolder { + extends GqlvAssociation<OneToOneAssociation, GqlvProperty.Holder> + implements GqlvMemberHidden.Holder, + GqlvMemberDisabled.Holder, + GqlvPropertyGet.Holder, + GqlvPropertySet.Holder, + GqlvPropertyValidate.Holder { private final GraphQLObjectType.Builder gqlObjectTypeBuilder; private final GraphQLObjectType gqlObjectType; @@ -49,7 +48,7 @@ public class GqlvProperty private final BookmarkService bookmarkService; public GqlvProperty( - final GqlvPropertyHolder holder, + final Holder holder, final OneToOneAssociation oneToOneAssociation, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final BookmarkService bookmarkService @@ -94,6 +93,11 @@ public class GqlvProperty } + @Override + public ObjectSpecification getObjectSpecification() { + return holder.getObjectSpecification(); + } + public OneToOneAssociation getOneToOneAssociation() { return getObjectAssociation(); } @@ -121,4 +125,9 @@ public class GqlvProperty public FieldCoordinates coordinatesFor(GraphQLFieldDefinition fieldDefinition) { return FieldCoordinates.coordinates(gqlObjectType, fieldDefinition); } + + + public interface Holder extends GqlvAssociation.Holder { + + } } 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 d67944f14f..063646bfb7 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 @@ -18,17 +18,14 @@ */ 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.ObjectSpecification; 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; -import graphql.schema.DataFetchingEnvironment; import graphql.schema.GraphQLCodeRegistry; -import graphql.schema.GraphQLFieldDefinition; import graphql.schema.GraphQLOutputType; import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; @@ -36,16 +33,21 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; public class GqlvPropertyGet extends GqlvAssociationGet<OneToOneAssociation> { public GqlvPropertyGet( - final GqlvPropertyGetHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final SpecificationLoader specificationLoader) { super(holder, codeRegistryBuilder, specificationLoader); } @Override - GraphQLOutputType outputTypeFor(GqlvAssociationGetHolder<OneToOneAssociation> holder) { + GraphQLOutputType outputTypeFor(GqlvAssociationGet.Holder<OneToOneAssociation> holder) { val oneToOneAssociation = holder.getObjectAssociation(); return TypeMapper.outputTypeFor(oneToOneAssociation); } + public interface Holder extends GqlvAssociationGet.Holder<OneToOneAssociation> { + + @Override + OneToOneAssociation getObjectAssociation(); + } } 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 deleted file mode 100644 index 0f68abb1a6..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyGetHolder.java +++ /dev/null @@ -1,25 +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.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; - -public interface GqlvPropertyGetHolder extends GqlvAssociationGetHolder<OneToOneAssociation> { - -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java deleted file mode 100644 index 956c663d39..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyHolder.java +++ /dev/null @@ -1,23 +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; - -public interface GqlvPropertyHolder extends GqlvAssociationHolder { - -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java index 1d3e14d576..55805643c4 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySet.java @@ -21,6 +21,8 @@ package org.apache.causeway.viewer.graphql.model.domain; import org.apache.causeway.core.metamodel.consent.Consent; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; +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; @@ -37,13 +39,13 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; public class GqlvPropertySet { - final GqlvPropertySetHolder holder; + final Holder holder; final GraphQLCodeRegistry.Builder codeRegistryBuilder; final SpecificationLoader specificationLoader; final GraphQLFieldDefinition field; public GqlvPropertySet( - final GqlvPropertySetHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final SpecificationLoader specificationLoader) { this.holder = holder; @@ -52,7 +54,7 @@ public class GqlvPropertySet { this.specificationLoader = specificationLoader; } - GraphQLFieldDefinition fieldDefinition(final GqlvPropertySetHolder holder) { + GraphQLFieldDefinition fieldDefinition(final Holder holder) { GraphQLFieldDefinition fieldDefinition = null; GraphQLOutputType type = outputTypeFor(holder); @@ -68,7 +70,7 @@ public class GqlvPropertySet { return fieldDefinition; } - GraphQLOutputType outputTypeFor(GqlvPropertySetHolder holder) { + GraphQLOutputType outputTypeFor(Holder holder) { return TypeMapper.outputTypeFor(holder.getHolder().getObjectSpecification()); // setters return void, so we return the domain object instead } @@ -120,4 +122,13 @@ public class GqlvPropertySet { return managedObject; // return the original object because setters return void } + public interface Holder extends GqlvHolder { + + GqlvProperty.Holder getHolder(); + + ObjectSpecification getObjectSpecification(); + + OneToOneAssociation getOneToOneAssociation(); + + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySetHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySetHolder.java deleted file mode 100644 index 20af8785f7..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertySetHolder.java +++ /dev/null @@ -1,28 +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.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; - -public interface GqlvPropertySetHolder extends GqlvHolder { - - OneToOneAssociation getOneToOneAssociation(); - - GqlvPropertyHolder getHolder(); -} diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java index 25ee82bb98..e4431ff18d 100644 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java +++ b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidate.java @@ -23,6 +23,7 @@ import java.util.Map; import org.apache.causeway.core.metamodel.consent.Consent; import org.apache.causeway.core.metamodel.consent.InteractionInitiatedBy; import org.apache.causeway.core.metamodel.object.ManagedObject; +import org.apache.causeway.core.metamodel.spec.ObjectSpecification; 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; @@ -38,13 +39,13 @@ import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition; public class GqlvPropertyValidate { - final GqlvPropertyValidateHolder holder; + final Holder holder; final GraphQLCodeRegistry.Builder codeRegistryBuilder; final SpecificationLoader specificationLoader; final GraphQLFieldDefinition field; public GqlvPropertyValidate( - final GqlvPropertyValidateHolder holder, + final Holder holder, final GraphQLCodeRegistry.Builder codeRegistryBuilder, final SpecificationLoader specificationLoader) { this.holder = holder; @@ -53,7 +54,7 @@ public class GqlvPropertyValidate { this.specificationLoader = specificationLoader; } - GraphQLFieldDefinition fieldDefinition(final GqlvPropertyValidateHolder holder) { + GraphQLFieldDefinition fieldDefinition(final Holder holder) { GraphQLFieldDefinition fieldDefinition = null; GraphQLOutputType type = outputTypeFor(); @@ -115,4 +116,12 @@ public class GqlvPropertyValidate { return consent.isVetoed() ? consent.getReasonAsString().orElse("invalid") : null; } + public interface Holder extends GqlvHolder { + + ObjectSpecification getObjectSpecification(); + + OneToOneAssociation getOneToOneAssociation(); + + GqlvProperty.Holder getHolder(); + } } diff --git a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidateHolder.java b/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidateHolder.java deleted file mode 100644 index 616bf45f1c..0000000000 --- a/incubator/viewers/graphql/model/src/main/java/org/apache/causeway/viewer/graphql/model/domain/GqlvPropertyValidateHolder.java +++ /dev/null @@ -1,28 +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.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation; - -public interface GqlvPropertyValidateHolder extends GqlvHolder { - - OneToOneAssociation getOneToOneAssociation(); - - GqlvPropertyHolder getHolder(); -}
