Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public enum SomeEnum {
- VAL_ONE("VAL_TWO", "VAL_FOUR"),
- VAL_TWO("VAL_FIVE"),
- VAL_THREE("VAL_FOUR"),
- VAL_FOUR(),
- VAL_FIVE("VAL_FOUR");
- private final List<String> children;
- private SomeEnum(String... children) {
- this.children = new ArrayList<>(children);
- }
- public Set<SomeEnum> getChildren(Set<SomeEnum> include) {
- Set<SomeEnum> back = new HashSet<>();
- back.addAll(include);
- for (String s : this.children) {
- SomeEnum val = SomeEnum.valueOf(s);
- back.add(val);
- back = this.getChildren(back);
- }
- return back;
- }
- }
- /*
- This would be called like so:
- */
- SomeEnum.VAL_ONE.getChildren(null); //returns VAL_TWO and VAL_FOUR, and VAL_FIVE
- SomeEnum.VAL_TWO.getChildren(null); //returns VAL_FIVE and VAL_FOUR
- SomeEnum.VAL_THREE.getChildren(null); //returns VAL_FOUR
- SomeEnum.VAL_FOUR.getChildren(null); //returns an empty set
- SomeEnum.VAL_FIVE.getChildren(null); //returns VAL_FOUR
Advertisement
Add Comment
Please, Sign In to add comment