Skip to content

Commit 4ebab56

Browse files
committed
made ExtendGiving (and therefor VectorExtendGiving) implement beforeAndAfterName to unify all ExtendGiving
1 parent aaba8df commit 4ebab56

File tree

4 files changed

+14
-6
lines changed

4 files changed

+14
-6
lines changed

src/main/java/net/itarray/automotion/internal/UIElement.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -335,8 +335,8 @@ public void validateIsAbove(UIElement element, Condition<Scalar> condition, Cont
335335
validateSuccessor(DOWN, element, condition, context);
336336
}
337337

338-
public void validateSuccessor(Direction direction, UIElement toBeValidatedSuccessor, Condition<Scalar> condition, Context context) {
339-
Expression<Scalar> signedDistance = Expression.signedDistance(end(direction), toBeValidatedSuccessor.begin(direction), direction);
338+
public <V extends MetricSpace<V>> void validateSuccessor(ExtendGiving<V> direction, UIElement toBeValidatedSuccessor, Condition<V> condition, Context context) {
339+
Expression<V> signedDistance = Expression.signedDistance(end(direction), toBeValidatedSuccessor.begin(direction), direction);
340340
Expression<Boolean> assertion = condition.applyTo(signedDistance, new SuccessorConditionedExpressionDescription<>(signedDistance, condition, direction));
341341
if (!assertion.evaluateIn(context, direction)) {
342342
context.add(assertion.getDescription(context, direction));

src/main/java/net/itarray/automotion/internal/geometry/ExtendGiving.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
public interface ExtendGiving<V extends MetricSpace<V>> {
66
String beginName();
77
String endName();
8+
String beforeName();
9+
String afterName();
810
String extendName();
911

1012
V begin(Rectangle rectangle);

src/main/java/net/itarray/automotion/internal/geometry/VectorExtendGiving.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ public String endName() {
2929
return format("%s %s", x.endName(), y.endName());
3030
}
3131

32+
public String beforeName() {
33+
return format("%s and %s", x.beforeName(), y.beforeName().toLowerCase());
34+
}
35+
public String afterName() {
36+
return format("%s or %s", x.afterName(), y.afterName().toLowerCase());
37+
}
38+
3239
@Override
3340
public Vector begin(Rectangle rectangle) {
3441
return new Vector(x.begin(rectangle), y.begin(rectangle));

src/main/java/net/itarray/automotion/internal/properties/SuccessorConditionedExpressionDescription.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
package net.itarray.automotion.internal.properties;
22

3-
import net.itarray.automotion.internal.geometry.Direction;
43
import net.itarray.automotion.internal.geometry.ExtendGiving;
54
import net.itarray.automotion.internal.geometry.MetricSpace;
65
import net.itarray.automotion.validation.properties.Condition;
76
import net.itarray.automotion.validation.properties.Expression;
87

9-
public class SuccessorConditionedExpressionDescription<T> extends ConditionedExpressionDescription<T> {
10-
private final Direction direction;
8+
public class SuccessorConditionedExpressionDescription<T, V extends MetricSpace<V>> extends ConditionedExpressionDescription<T> {
9+
private final ExtendGiving<V> direction;
1110

12-
public SuccessorConditionedExpressionDescription(Expression<T> toBeConditioned, Condition<T> toBeApplied, Direction direction) {
11+
public SuccessorConditionedExpressionDescription(Expression<T> toBeConditioned, Condition<T> toBeApplied, ExtendGiving<V> direction) {
1312
super(toBeConditioned, toBeApplied);
1413
this.direction = direction;
1514
}

0 commit comments

Comments
 (0)