Skip to content

Commit

Permalink
HSEARCH-3297 Remove modelPathFromRootEntityNode from dependency colle…
Browse files Browse the repository at this point in the history
…ctor 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.
  • Loading branch information
yrodiere committed Apr 29, 2019
1 parent 1cf74a4 commit a0fd7aa
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 31 deletions.
Expand Up @@ -31,24 +31,17 @@ public class PojoIndexingDependencyCollectorPropertyNode<T, P> extends PojoIndex
*/
private final PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode;
private final BoundPojoModelPathPropertyNode<T, P> 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<T, P> modelPathFromRootEntityNode;

PojoIndexingDependencyCollectorPropertyNode(PojoIndexingDependencyCollectorTypeNode<T> parentNode,
BoundPojoModelPathPropertyNode<T, P> modelPathFromParentNode,
PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode,
BoundPojoModelPathPropertyNode<T, P> modelPathFromLastEntityNode,
BoundPojoModelPathPropertyNode<T, P> modelPathFromRootEntityNode,
PojoImplicitReindexingResolverBuildingHelper buildingHelper) {
super( buildingHelper );
this.parentNode = parentNode;
this.modelPathFromParentNode = modelPathFromParentNode;
this.lastEntityNode = lastEntityNode;
this.modelPathFromLastEntityNode = modelPathFromLastEntityNode;
this.modelPathFromRootEntityNode = modelPathFromRootEntityNode;
}

public <V> PojoIndexingDependencyCollectorValueNode<P, V> value(
Expand All @@ -58,7 +51,6 @@ public <V> PojoIndexingDependencyCollectorValueNode<P, V> value(
modelPathFromParentNode.value( boundExtractorPath ),
lastEntityNode,
modelPathFromLastEntityNode.value( boundExtractorPath ),
modelPathFromRootEntityNode.value( boundExtractorPath ),
buildingHelper
);
}
Expand All @@ -67,7 +59,7 @@ public <V> PojoIndexingDependencyCollectorValueNode<P, V> value(
ContainerExtractorPath extractorPath) {
BoundContainerExtractorPath<P, ?> boundExtractorPath =
buildingHelper.getExtractorBinder().bindPath(
modelPathFromRootEntityNode.getPropertyModel().getTypeModel(),
modelPathFromLastEntityNode.getPropertyModel().getTypeModel(),
extractorPath
);
return value( boundExtractorPath );
Expand Down
Expand Up @@ -42,11 +42,6 @@ public class PojoIndexingDependencyCollectorTypeNode<T> extends PojoIndexingDepe
*/
private final PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode;
private final BoundPojoModelPathTypeNode<T> 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<T> modelPathFromRootEntityNode;

PojoIndexingDependencyCollectorTypeNode(PojoRawTypeModel<T> typeModel,
PojoImplicitReindexingResolverBuildingHelper buildingHelper) {
Expand All @@ -55,17 +50,15 @@ public class PojoIndexingDependencyCollectorTypeNode<T> extends PojoIndexingDepe
this.modelPathFromCurrentNode = BoundPojoModelPath.root( typeModel );
this.lastEntityNode = this;
this.modelPathFromLastEntityNode = modelPathFromCurrentNode;
this.modelPathFromRootEntityNode = modelPathFromCurrentNode;
}

PojoIndexingDependencyCollectorTypeNode(PojoIndexingDependencyCollectorValueNode<?, T> parentNode,
PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode,
BoundPojoModelPathTypeNode<T> modelPathFromLastEntityNode,
BoundPojoModelPathTypeNode<T> modelPathFromRootEntityNode,
PojoImplicitReindexingResolverBuildingHelper buildingHelper) {
super( buildingHelper );
this.parentNode = parentNode;
PojoTypeModel<T> typeModel = modelPathFromRootEntityNode.getTypeModel();
PojoTypeModel<T> typeModel = modelPathFromLastEntityNode.getTypeModel();
this.modelPathFromCurrentNode = BoundPojoModelPath.root( typeModel );
if ( buildingHelper.isEntity( typeModel.getRawType() ) ) {
this.lastEntityNode = this;
Expand All @@ -75,7 +68,6 @@ public class PojoIndexingDependencyCollectorTypeNode<T> extends PojoIndexingDepe
this.lastEntityNode = lastEntityNode;
this.modelPathFromLastEntityNode = modelPathFromLastEntityNode;
}
this.modelPathFromRootEntityNode = modelPathFromRootEntityNode;
}

/*
Expand All @@ -90,7 +82,6 @@ public class PojoIndexingDependencyCollectorTypeNode<T> extends PojoIndexingDepe
(BoundPojoModelPathPropertyNode) modelPathFromCurrentNode.property( propertyName ),
lastEntityNode,
(BoundPojoModelPathPropertyNode) modelPathFromLastEntityNode.property( propertyName ),
(BoundPojoModelPathPropertyNode) modelPathFromRootEntityNode.property( propertyName ),
buildingHelper
);
}
Expand All @@ -104,7 +95,7 @@ void collectDependency(BoundPojoModelPathValueNode<?, ?, ?> dirtyPathFromEntityT
if ( lastEntityNode != this ) {
throw new AssertionFailure( "collectDependency() called on a non-entity node" );
}
PojoRawTypeModel<? super T> rawType = modelPathFromRootEntityNode.getTypeModel().getRawType();
PojoRawTypeModel<? super T> rawType = modelPathFromLastEntityNode.getTypeModel().getRawType();
if ( parentNode == null ) {
/*
* This node represents an indexed entity (A).
Expand Down Expand Up @@ -204,7 +195,7 @@ else if ( originalSideRawType.isSubTypeOf( inverseSideRawType ) ) {
}

PojoTypeModel<T> getTypeModel() {
return modelPathFromRootEntityNode.getTypeModel();
return modelPathFromLastEntityNode.getTypeModel();
}

}
Expand Up @@ -70,11 +70,6 @@ public class PojoIndexingDependencyCollectorValueNode<P, V> extends PojoIndexing
*/
private final PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode;
private final BoundPojoModelPathValueNode<?, P, V> 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<?, P, V> modelPathFromRootEntityNode;

private final ReindexOnUpdate reindexOnUpdate;
private final Set<PojoModelPathValueNode> derivedFrom;
Expand All @@ -87,7 +82,6 @@ public class PojoIndexingDependencyCollectorValueNode<P, V> extends PojoIndexing
BoundPojoModelPathValueNode<?, P, V> modelPathFromLastTypeNode,
PojoIndexingDependencyCollectorTypeNode<?> lastEntityNode,
BoundPojoModelPathValueNode<?, P, V> modelPathFromLastEntityNode,
BoundPojoModelPathValueNode<?, P, V> modelPathFromRootEntityNode,
PojoImplicitReindexingResolverBuildingHelper buildingHelper) {
super( buildingHelper );
this.parentNode = parentNode;
Expand All @@ -96,7 +90,6 @@ public class PojoIndexingDependencyCollectorValueNode<P, V> extends PojoIndexing
this.unboundModelPathFromLastTypeNode = modelPathFromLastTypeNode.toUnboundPath();
this.lastEntityNode = lastEntityNode;
this.modelPathFromLastEntityNode = modelPathFromLastEntityNode;
this.modelPathFromRootEntityNode = modelPathFromRootEntityNode;

BoundPojoModelPathValueNode<?, P, V> modelPathValueNode = modelPathFromLastTypeNode;
BoundPojoModelPathPropertyNode<?, P> modelPathPropertyNode = modelPathFromLastTypeNode.getParent();
Expand All @@ -118,7 +111,6 @@ public PojoIndexingDependencyCollectorTypeNode<V> type() {
return new PojoIndexingDependencyCollectorTypeNode<>(
this,
lastEntityNode, modelPathFromLastEntityNode.type(),
modelPathFromRootEntityNode.type(),
buildingHelper
);
}
Expand Down Expand Up @@ -195,11 +187,11 @@ void markForReindexingUsingAssociationInverseSide(AbstractPojoImplicitReindexing
BoundPojoModelPathValueNode<?, ?, ?> dependencyPathFromInverseSideEntityTypeNode) {
PojoTypeModel<?> inverseSideEntityType = inverseSideEntityTypeNodeBuilder.getTypeModel();
PojoRawTypeModel<?> inverseSideRawEntityType = inverseSideEntityType.getRawType();
PojoTypeModel<V> expectedInverseSideEntityType = modelPathFromRootEntityNode.type().getTypeModel();
PojoTypeModel<V> 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."
Expand Down

0 comments on commit a0fd7aa

Please sign in to comment.