From a0fd7aac1fafedb601aafc53c3856b374e05ae5a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yoann=20Rodi=C3=A8re?= Date: Wed, 24 Apr 2019 15:54:44 +0200 Subject: [PATCH] HSEARCH-3297 Remove modelPathFromRootEntityNode from dependency collector nodes We're going to introduce nodes with no corresponding path, so there will be no way to represent this path in such a node and below. --- ...joIndexingDependencyCollectorPropertyNode.java | 10 +--------- .../PojoIndexingDependencyCollectorTypeNode.java | 15 +++------------ .../PojoIndexingDependencyCollectorValueNode.java | 12 ++---------- 3 files changed, 6 insertions(+), 31 deletions(-) diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorPropertyNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorPropertyNode.java index b00717bc1a6..3c34c200c35 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorPropertyNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorPropertyNode.java @@ -31,24 +31,17 @@ public class PojoIndexingDependencyCollectorPropertyNode extends PojoIndex */ private final PojoIndexingDependencyCollectorTypeNode lastEntityNode; private final BoundPojoModelPathPropertyNode modelPathFromLastEntityNode; - /** - * The path to this node from the root node, - * i.e. from the node representing the type for which dependencies are being collected. - */ - private final BoundPojoModelPathPropertyNode modelPathFromRootEntityNode; PojoIndexingDependencyCollectorPropertyNode(PojoIndexingDependencyCollectorTypeNode parentNode, BoundPojoModelPathPropertyNode modelPathFromParentNode, PojoIndexingDependencyCollectorTypeNode lastEntityNode, BoundPojoModelPathPropertyNode modelPathFromLastEntityNode, - BoundPojoModelPathPropertyNode modelPathFromRootEntityNode, PojoImplicitReindexingResolverBuildingHelper buildingHelper) { super( buildingHelper ); this.parentNode = parentNode; this.modelPathFromParentNode = modelPathFromParentNode; this.lastEntityNode = lastEntityNode; this.modelPathFromLastEntityNode = modelPathFromLastEntityNode; - this.modelPathFromRootEntityNode = modelPathFromRootEntityNode; } public PojoIndexingDependencyCollectorValueNode value( @@ -58,7 +51,6 @@ public PojoIndexingDependencyCollectorValueNode value( modelPathFromParentNode.value( boundExtractorPath ), lastEntityNode, modelPathFromLastEntityNode.value( boundExtractorPath ), - modelPathFromRootEntityNode.value( boundExtractorPath ), buildingHelper ); } @@ -67,7 +59,7 @@ public PojoIndexingDependencyCollectorValueNode value( ContainerExtractorPath extractorPath) { BoundContainerExtractorPath boundExtractorPath = buildingHelper.getExtractorBinder().bindPath( - modelPathFromRootEntityNode.getPropertyModel().getTypeModel(), + modelPathFromLastEntityNode.getPropertyModel().getTypeModel(), extractorPath ); return value( boundExtractorPath ); diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorTypeNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorTypeNode.java index e19a5c10a4e..a9514fb3db6 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorTypeNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorTypeNode.java @@ -42,11 +42,6 @@ public class PojoIndexingDependencyCollectorTypeNode extends PojoIndexingDepe */ private final PojoIndexingDependencyCollectorTypeNode lastEntityNode; private final BoundPojoModelPathTypeNode modelPathFromLastEntityNode; - /** - * The path to this node from the root node, - * i.e. from the node representing the type for which dependencies are being collected. - */ - private final BoundPojoModelPathTypeNode modelPathFromRootEntityNode; PojoIndexingDependencyCollectorTypeNode(PojoRawTypeModel typeModel, PojoImplicitReindexingResolverBuildingHelper buildingHelper) { @@ -55,17 +50,15 @@ public class PojoIndexingDependencyCollectorTypeNode extends PojoIndexingDepe this.modelPathFromCurrentNode = BoundPojoModelPath.root( typeModel ); this.lastEntityNode = this; this.modelPathFromLastEntityNode = modelPathFromCurrentNode; - this.modelPathFromRootEntityNode = modelPathFromCurrentNode; } PojoIndexingDependencyCollectorTypeNode(PojoIndexingDependencyCollectorValueNode parentNode, PojoIndexingDependencyCollectorTypeNode lastEntityNode, BoundPojoModelPathTypeNode modelPathFromLastEntityNode, - BoundPojoModelPathTypeNode modelPathFromRootEntityNode, PojoImplicitReindexingResolverBuildingHelper buildingHelper) { super( buildingHelper ); this.parentNode = parentNode; - PojoTypeModel typeModel = modelPathFromRootEntityNode.getTypeModel(); + PojoTypeModel typeModel = modelPathFromLastEntityNode.getTypeModel(); this.modelPathFromCurrentNode = BoundPojoModelPath.root( typeModel ); if ( buildingHelper.isEntity( typeModel.getRawType() ) ) { this.lastEntityNode = this; @@ -75,7 +68,6 @@ public class PojoIndexingDependencyCollectorTypeNode extends PojoIndexingDepe this.lastEntityNode = lastEntityNode; this.modelPathFromLastEntityNode = modelPathFromLastEntityNode; } - this.modelPathFromRootEntityNode = modelPathFromRootEntityNode; } /* @@ -90,7 +82,6 @@ public class PojoIndexingDependencyCollectorTypeNode extends PojoIndexingDepe (BoundPojoModelPathPropertyNode) modelPathFromCurrentNode.property( propertyName ), lastEntityNode, (BoundPojoModelPathPropertyNode) modelPathFromLastEntityNode.property( propertyName ), - (BoundPojoModelPathPropertyNode) modelPathFromRootEntityNode.property( propertyName ), buildingHelper ); } @@ -104,7 +95,7 @@ void collectDependency(BoundPojoModelPathValueNode dirtyPathFromEntityT if ( lastEntityNode != this ) { throw new AssertionFailure( "collectDependency() called on a non-entity node" ); } - PojoRawTypeModel rawType = modelPathFromRootEntityNode.getTypeModel().getRawType(); + PojoRawTypeModel rawType = modelPathFromLastEntityNode.getTypeModel().getRawType(); if ( parentNode == null ) { /* * This node represents an indexed entity (A). @@ -204,7 +195,7 @@ else if ( originalSideRawType.isSubTypeOf( inverseSideRawType ) ) { } PojoTypeModel getTypeModel() { - return modelPathFromRootEntityNode.getTypeModel(); + return modelPathFromLastEntityNode.getTypeModel(); } } diff --git a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorValueNode.java b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorValueNode.java index 08a601c8352..87d6705a144 100644 --- a/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorValueNode.java +++ b/mapper/pojo/src/main/java/org/hibernate/search/mapper/pojo/dirtiness/building/impl/PojoIndexingDependencyCollectorValueNode.java @@ -70,11 +70,6 @@ public class PojoIndexingDependencyCollectorValueNode extends PojoIndexing */ private final PojoIndexingDependencyCollectorTypeNode lastEntityNode; private final BoundPojoModelPathValueNode modelPathFromLastEntityNode; - /** - * The path to this node from the root node, - * i.e. from the node representing the type for which dependencies are being collected. - */ - private final BoundPojoModelPathValueNode modelPathFromRootEntityNode; private final ReindexOnUpdate reindexOnUpdate; private final Set derivedFrom; @@ -87,7 +82,6 @@ public class PojoIndexingDependencyCollectorValueNode extends PojoIndexing BoundPojoModelPathValueNode modelPathFromLastTypeNode, PojoIndexingDependencyCollectorTypeNode lastEntityNode, BoundPojoModelPathValueNode modelPathFromLastEntityNode, - BoundPojoModelPathValueNode modelPathFromRootEntityNode, PojoImplicitReindexingResolverBuildingHelper buildingHelper) { super( buildingHelper ); this.parentNode = parentNode; @@ -96,7 +90,6 @@ public class PojoIndexingDependencyCollectorValueNode extends PojoIndexing this.unboundModelPathFromLastTypeNode = modelPathFromLastTypeNode.toUnboundPath(); this.lastEntityNode = lastEntityNode; this.modelPathFromLastEntityNode = modelPathFromLastEntityNode; - this.modelPathFromRootEntityNode = modelPathFromRootEntityNode; BoundPojoModelPathValueNode modelPathValueNode = modelPathFromLastTypeNode; BoundPojoModelPathPropertyNode modelPathPropertyNode = modelPathFromLastTypeNode.getParent(); @@ -118,7 +111,6 @@ public PojoIndexingDependencyCollectorTypeNode type() { return new PojoIndexingDependencyCollectorTypeNode<>( this, lastEntityNode, modelPathFromLastEntityNode.type(), - modelPathFromRootEntityNode.type(), buildingHelper ); } @@ -195,11 +187,11 @@ void markForReindexingUsingAssociationInverseSide(AbstractPojoImplicitReindexing BoundPojoModelPathValueNode dependencyPathFromInverseSideEntityTypeNode) { PojoTypeModel inverseSideEntityType = inverseSideEntityTypeNodeBuilder.getTypeModel(); PojoRawTypeModel inverseSideRawEntityType = inverseSideEntityType.getRawType(); - PojoTypeModel expectedInverseSideEntityType = modelPathFromRootEntityNode.type().getTypeModel(); + PojoTypeModel expectedInverseSideEntityType = modelPathFromLastEntityNode.type().getTypeModel(); PojoRawTypeModel expectedInverseSideEntityRawType = expectedInverseSideEntityType.getRawType(); if ( !inverseSideRawEntityType.isSubTypeOf( expectedInverseSideEntityRawType ) ) { throw new AssertionFailure( - "Error while building the automatic reindexing resolver at path " + modelPathFromRootEntityNode + "Error while building the automatic reindexing resolver at path " + modelPathFromLastEntityNode + ": the dependency collector was passed a resolver builder with incorrect type; " + " got " + inverseSideRawEntityType + ", but a subtype of " + expectedInverseSideEntityRawType + " was expected."