Skip to content

Commit e1643c4

Browse files
required model and undomanager
1 parent 4194b0e commit e1643c4

File tree

4 files changed

+222
-0
lines changed

4 files changed

+222
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
package com.requiredmodelbean;
2+
3+
import javax.management.MBeanServer;
4+
import javax.management.ObjectName;
5+
import javax.management.modelmbean.ModelMBeanInfo;
6+
7+
import liquidjava.specification.ExternalRefinementsFor;
8+
import liquidjava.specification.StateRefinement;
9+
import liquidjava.specification.StateSet;
10+
11+
@ExternalRefinementsFor("javax.management.modelmbean.RequiredModelMBean")
12+
@StateSet({"unregistered", "registered"})
13+
interface RequiredModelMBeanRefinements{
14+
15+
@StateRefinement(to="unregistered(this)")
16+
void RequiredModelMBean();
17+
18+
@StateRefinement(to="unregistered(this)")
19+
void RequiredModelMBean(ModelMBeanInfo mbi);
20+
21+
22+
@StateRefinement(from="unregistered(this)")
23+
ObjectName preRegister(MBeanServer server, ObjectName name);
24+
25+
@StateRefinement(to="registered(this)")
26+
void postRegister(Boolean registrationDone);
27+
28+
29+
@StateRefinement(from="registered(this)")
30+
void preDeregister();
31+
32+
@StateRefinement(from="registered(this)", to="unregistered(this)")
33+
void postDeregister();
34+
35+
@StateRefinement(from="unregistered(this)")
36+
void setModelMBeanInfo(ModelMBeanInfo mbi);
37+
38+
@StateRefinement(from="unregistered(this)")
39+
void load();
40+
41+
// void addAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName, Object inhandback);
42+
43+
// void addNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback);
44+
45+
// Object getAttribute(String attrName);
46+
47+
// AttributeList getAttributes(String[] attrNames);
48+
49+
// MBeanInfo getMBeanInfo();
50+
51+
// MBeanNotificationInfo[] getNotificationInfo();
52+
53+
// Object invoke(String opName, Object[] opArgs, String[] sig);
54+
55+
// void removeAttributeChangeNotificationListener(NotificationListener inlistener, String inAttributeName);
56+
57+
// void removeNotificationListener(NotificationListener listener);
58+
59+
// void removeNotificationListener(NotificationListener listener, NotificationFilter filter, Object handback);
60+
61+
// void sendAttributeChangeNotification(AttributeChangeNotification ntfyObj);
62+
63+
// void sendAttributeChangeNotification(Attribute inOldVal, Attribute inNewVal);
64+
65+
// void sendNotification(String ntfyText);
66+
67+
// void sendNotification(Notification ntfyObj);
68+
69+
// void setAttribute(Attribute attribute);
70+
71+
// AttributeList setAttributes(AttributeList attributes);
72+
73+
// void setManagedResource(Object mr, String mr_type);
74+
75+
// void store();
76+
77+
78+
79+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.requiredmodelbean;
2+
3+
import javax.management.modelmbean.ModelMBeanInfo;
4+
import javax.management.modelmbean.RequiredModelMBean;
5+
6+
public class TestRequiredModel {
7+
8+
void test1() throws Exception {
9+
RequiredModelMBean r = new RequiredModelMBean();
10+
r.setModelMBeanInfo(null);
11+
r.postRegister(Boolean.TRUE);
12+
r.setModelMBeanInfo(null); //error
13+
}
14+
15+
void test2() throws Exception {
16+
RequiredModelMBean r = new RequiredModelMBean();
17+
r.setModelMBeanInfo(null);
18+
r.setModelMBeanInfo(null);
19+
r.setManagedResource(r, null);
20+
r.postRegister(null);
21+
r.load(); //error
22+
}
23+
24+
void test3() throws Exception {
25+
RequiredModelMBean r = new RequiredModelMBean();
26+
r.setModelMBeanInfo(null);
27+
r.load();
28+
r.setManagedResource(r, null);
29+
r.postRegister(null);
30+
r.store();
31+
r.postDeregister();
32+
r.load();
33+
}
34+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
2+
package com.undomanager;
3+
4+
import javax.swing.undo.UndoManager;
5+
6+
public class TestUndoManager {
7+
8+
void test1(){
9+
UndoManager u = new UndoManager();
10+
u.addEdit(null);
11+
u.redo();
12+
u.setLimit(10);
13+
u.redo();
14+
u.end();
15+
u.setLimit(10); //error
16+
}
17+
18+
void testGood(){
19+
UndoManager u = new UndoManager();
20+
u.addEdit(null);
21+
u.redo();
22+
u.setLimit(10);
23+
u.redo();
24+
u.end();
25+
u.undoOrRedo();
26+
}
27+
28+
void test2(){
29+
UndoManager u = new UndoManager();
30+
u.undo();
31+
u.addEdit(null);
32+
}
33+
34+
void test3(){
35+
UndoManager u = new UndoManager();
36+
u.undoableEditHappened(null);
37+
u.undo();
38+
u.end();
39+
u.setLimit(100);//error
40+
}
41+
}
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package com.undomanager;
2+
3+
import javax.swing.event.UndoableEditEvent;
4+
import javax.swing.undo.UndoableEdit;
5+
6+
import liquidjava.specification.ExternalRefinementsFor;
7+
import liquidjava.specification.StateRefinement;
8+
import liquidjava.specification.StateSet;
9+
10+
@ExternalRefinementsFor("javax.swing.undo.UndoManager")
11+
@StateSet({"start", "canEdit", "end"})
12+
public interface UndoManagerRefinements {
13+
14+
@StateRefinement(to="start(this)")
15+
void UndoManager();
16+
17+
@StateRefinement(from="start(this)", to="canEdit(this)")
18+
boolean addEdit(UndoableEdit anEdit);
19+
20+
@StateRefinement(from="canEdit(this)")
21+
void discardAllEdits();
22+
23+
@StateRefinement(to="end(this)")
24+
void end();
25+
26+
@StateRefinement(from="canEdit(this)")
27+
@StateRefinement(from="end(this)")
28+
String getRedoPresentationName();
29+
30+
@StateRefinement(from="canEdit(this)")
31+
@StateRefinement(from="end(this)")
32+
String getUndoOrRedoPresentationName();
33+
34+
@StateRefinement(from="canEdit(this)")
35+
@StateRefinement(from="end(this)")
36+
String getUndoPresentationName();
37+
38+
@StateRefinement(from="canEdit(this)")
39+
@StateRefinement(from="end(this)")
40+
void redo();
41+
42+
@StateRefinement(from="start(this)")
43+
@StateRefinement(from="canEdit(this)")
44+
void setLimit(int l);
45+
46+
@StateRefinement(from="canEdit(this)")
47+
@StateRefinement(from="end(this)")
48+
void undo();
49+
50+
@StateRefinement(from="start(this)", to="canEdit(this)")
51+
@StateRefinement(from="canEdit(this)")
52+
@StateRefinement(from="end(this)")
53+
void undoableEditHappened(UndoableEditEvent e);
54+
55+
@StateRefinement(from="canEdit(this)")
56+
@StateRefinement(from="end(this)")
57+
void undoOrRedo();
58+
59+
60+
61+
// int getLimit(); //any
62+
// boolean canRedo();
63+
64+
// boolean canUndo();
65+
66+
// boolean canUndoOrRedo();
67+
68+
}

0 commit comments

Comments
 (0)