Skip to content

Commit 4f90e6d

Browse files
committed
Add DefaultMutableTreeNode Refinements
1 parent 2f12131 commit 4f90e6d

File tree

2 files changed

+77
-0
lines changed

2 files changed

+77
-0
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
package com.defaultMutableTreeNode;
2+
3+
import javax.swing.tree.MutableTreeNode;
4+
import javax.swing.tree.TreeNode;
5+
6+
import liquidjava.specification.ExternalRefinementsFor;
7+
import liquidjava.specification.Refinement;
8+
import liquidjava.specification.RefinementAlias;
9+
import liquidjava.specification.StateRefinement;
10+
import liquidjava.specification.StateSet;
11+
12+
@RefinementAlias("Positive(int i) { i >= 0 }")
13+
@ExternalRefinementsFor("javax.swing.tree.DefaultMutableTreeNode")
14+
@StateSet({"childrenAllowed", "childrenNotAllowed"})
15+
public interface DefaultMutableTreeNodeRefinements {
16+
17+
@StateRefinement(to="childrenAllowed(this)")
18+
public void DefaultMutableTreeNode();
19+
20+
@StateRefinement(to="childrenAllowed(this)")
21+
public void DefaultMutableTreeNode(Object userObject);
22+
23+
@StateRefinement(to="allowsChildren ? childrenAllowed(this) : childrenNotAllowed(this)")
24+
public void DefaultMutableTreeNode(Object userObject, boolean allowsChildren);
25+
26+
@StateRefinement(from="childrenAllowed(this)")
27+
public void insert(MutableTreeNode newChild, @Refinement("Positive(_)") int childIndex);
28+
29+
@StateRefinement(from="childrenAllowed(this)")
30+
public void add(MutableTreeNode newChild);
31+
32+
@StateRefinement(to="allows ? childrenAllowed(this) : childrenNotAllowed(this)")
33+
public void setAllowsChildren(boolean allows);
34+
35+
@Refinement("childrenAllowed(this) ? true : false")
36+
public boolean getAllowsChildren();
37+
38+
public void remove(@Refinement("Positive(_)") int childIndex);
39+
40+
public TreeNode getChildAt(@Refinement("Positive(_)") int index);
41+
42+
@Refinement("Positive(_)")
43+
public int getChildCount();
44+
45+
@Refinement("Positive(_) || _ == -1")
46+
public int getIndex(TreeNode aChild);
47+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.defaultMutableTreeNode;
2+
3+
import javax.swing.tree.DefaultMutableTreeNode;
4+
5+
public class DefaultMutableTreeNodeTests {
6+
7+
public void testOk() {
8+
DefaultMutableTreeNode node = new DefaultMutableTreeNode();
9+
node.insert(null, 0);
10+
node.getIndex(null);
11+
node.remove(0);
12+
}
13+
14+
public void testAddUnwantedChildConstructor() {
15+
DefaultMutableTreeNode node = new DefaultMutableTreeNode(null, false);
16+
node.insert(null, 0); // error
17+
}
18+
19+
public void testAddUnwantedChildSetter() {
20+
DefaultMutableTreeNode node = new DefaultMutableTreeNode(null, true);
21+
node.insert(null, 0);
22+
node.setAllowsChildren(false);
23+
node.add(null); // error
24+
}
25+
26+
public void testAddChildInvalidIndex() {
27+
DefaultMutableTreeNode node = new DefaultMutableTreeNode();
28+
node.insert(null, -1); // error
29+
}
30+
}

0 commit comments

Comments
 (0)