Last active
January 15, 2023 02:23
-
-
Save alexanderankin/b214ee0cb68274fdabcacc9216dda61b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| import lombok.Data; | |
| import lombok.experimental.Accessors; | |
| public class BucketStateViewer { | |
| public static void main(String[] args) { | |
| BucketState valid = new BucketState() | |
| .setObserver(ObserverRelativeToCenter.LEFT) | |
| .setObserved(ObservedRelativeToCenter.LEFT) | |
| .setRelative(ObservedRelativeToObserver.LEFT) | |
| .setDistance(Distance.INCREASING) | |
| .setRelativeVelocity(RelativeVelocity.DECREASING); | |
| System.out.println(valid); | |
| System.out.println(valid.amIValid()); | |
| BucketState invalid = new BucketState() | |
| .setObserver(ObserverRelativeToCenter.LEFT) | |
| .setObserved(ObservedRelativeToCenter.LEFT) | |
| .setRelative(ObservedRelativeToObserver.RIGHT) | |
| .setDistance(Distance.INCREASING) | |
| .setRelativeVelocity(RelativeVelocity.INCREASING); | |
| System.out.println(invalid); | |
| System.out.println(invalid.amIValid()); | |
| } | |
| enum ObserverRelativeToCenter { | |
| LEFT, RIGHT, EQUALS, | |
| } | |
| enum ObservedRelativeToCenter { | |
| LEFT, RIGHT, EQUALS, | |
| } | |
| enum ObservedRelativeToObserver { | |
| LEFT, RIGHT, EQUALS | |
| } | |
| // ObserverObservedDistanceD1 | |
| enum Distance { | |
| INCREASING, DECREASING, | |
| } | |
| // ObserverObservedDistanceD2 | |
| enum RelativeVelocity { | |
| INCREASING, DECREASING, | |
| } | |
| @Accessors(chain = true) | |
| @Data | |
| static class BucketState { | |
| ObserverRelativeToCenter observer; | |
| ObservedRelativeToCenter observed; | |
| ObservedRelativeToObserver relative; | |
| Distance distance; | |
| RelativeVelocity relativeVelocity; | |
| boolean amIValid() { | |
| if (observer == ObserverRelativeToCenter.LEFT && | |
| observed == ObservedRelativeToCenter.LEFT && | |
| relative == ObservedRelativeToObserver.RIGHT) | |
| return false; | |
| return true; | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment