|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.argouml.cognitive.Designer
This class models the designer who is building a complex design in some application domain and needs continuous feedback to aid in the making of good design decisions.
This area needs work, especially as it is a central idea of Argo.
Currently everything is hardcoded. what can be configurable??
the ToDoList is dependent on this class.
This class listens to property changes from ...?
A Designer can as well create ToDO Items, such as critics do. Hence he implements the Poster interface.
TODO: implement as singleton?? There are comments that suggest this should be done.
Nested Class Summary | |
(package private) class |
Designer.ChildGenDMElements
|
Field Summary | |
private java.util.Vector |
_addQueue
needs documenting |
private java.util.Vector |
_addReasonQueue
needs documenting |
private Agency |
_agency
Each designer has their own Agency instance that is responsible for selecting and executing critics that are relevant to thid designer on an on going basis. |
private boolean |
_autoCritique
needs documenting |
private org.tigris.gef.util.ChildGenerator |
_cg
needs documenting |
private javax.swing.Icon |
_clarifier
|
private int |
_critiqueCPUPercent
needs documenting |
protected long |
_critiqueDuration
needs documenting |
protected int |
_critiqueLock
needs documenting |
private java.lang.Thread |
_critiquer
needs documenting |
private int |
_critiquingInterval
needs documenting |
private static java.lang.Object |
_CritiquingRoot
needs documenting |
private DecisionModel |
_decisions
The decisions currently being considered by the designer. |
private java.lang.String |
_emailAddr
The email address where other designers can send this designer email. |
private GoalModel |
_goals
The goals of the designer are likewise used by the Agency to determine what critics are relevant. |
private java.util.Vector |
_hotQueue
dm's that should be critiqued ASAP. |
private java.util.Vector |
_hotReasonQueue
needs documenting |
protected long |
_lastCritique
needs documenting |
static int |
_longestAdd
needs documenting |
static int |
_longestHot
needs documenting |
private java.util.Properties |
_prefs
Preferences -- very ill defined |
private java.util.Vector |
_removeQueue
needs documenting |
private ToDoList |
_toDoList
ToDoList items that are on the designers ToDoList because of this material. |
static boolean |
_userWorking
needs documenting |
private java.util.Vector |
_warmQueue
dm's that should be critiqued relatively soon. |
protected static org.apache.log4j.Logger |
cat
|
static Designer |
TheDesigner
the singleton of this class: TODO: needs to be made private. |
static java.util.Vector |
UNSPEC_DECISION_VECTOR
needs documenting |
static java.util.Vector |
UNSPEC_GOAL_VECTOR
needs documenting |
Constructor Summary | |
private |
Designer()
TODO: this is aparently meant to be a singleton class - make this private + getInstance methods... |
Method Summary | |
void |
addToDoItems(ToDoList list)
Add all the items in the given list to my list. |
boolean |
canFixIt(ToDoItem item)
just returns false |
static void |
clearCritiquing()
needs documenting |
boolean |
containsKnowledgeType(java.lang.String type)
needs documenting |
void |
critique(Design des)
Look for potential problems or open issues in the given design. |
void |
critiqueASAP(java.lang.Object dm,
java.lang.String reason)
what does this method do? why is is synchronised? TODO: what about when objects are first created? |
void |
defineDecision(java.lang.String decision,
int priority)
needs documenting |
void |
determineActiveCritics()
Ask this designer's agency to select which critics should be active. |
static void |
disableCritiquing()
needs documenting |
void |
disruptivelyWarn(ToDoItem item)
Empty. |
int |
disruptiveThreshold()
just returns the value 9, Used to determine which ToDoItems are urgent. |
static void |
enableCritiquing()
needs documenting |
java.lang.String |
expand(java.lang.String desc,
org.tigris.gef.util.VectorSet offs)
just returns the descr param |
void |
fixIt(ToDoItem item,
java.lang.Object arg)
empty |
Agency |
getAgency()
Reply the Agency object that is helping this Designer. |
boolean |
getAutoCritique()
autoCritique and critiquingInterval are two prameters that control how the critiquing thread operates. |
org.tigris.gef.util.ChildGenerator |
getChildGenerator()
needs documenting |
javax.swing.Icon |
getClarifier()
get the generic clarifier for this designer/poster |
int |
getCritiquingInterval()
needs documenting |
static java.lang.Object |
getCritiquingRoot()
needs documenting |
DecisionModel |
getDecisionModel()
needs documenting |
java.util.Vector |
getDecisions()
needs documenting |
java.lang.String |
getExpertEmail()
needs documenting |
GoalModel |
getGoalModel()
needs documenting |
java.util.Vector |
getGoals()
needs documenting |
java.util.Properties |
getPrefs()
Reply the designers personal preferneces. |
java.util.Vector |
getSupportedDecisions()
needs documenting |
java.util.Vector |
getSupportedGoals()
needs documenting |
ToDoList |
getToDoList()
Reply this Designer's ToDoList, a list of pending problems and issues that the designer might be interested in. |
boolean |
hasGoal(java.lang.String goal)
Record the extent to which the designer desires the given goal. |
void |
inform(ToDoItem item)
Inform the human designer using this system that the given ToDoItem should be considered. |
boolean |
isConsidering(Decision d)
needs documenting |
boolean |
isConsidering(java.lang.String decision)
Reply true iff the designer is currently considering the given decison. |
void |
listRoleItemSet(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
nondisruptivelyWarn(ToDoItem item)
Inform the human designer that there is a ToDoItem that is relevant to his design work, and allow him to consider it on his own initiative. |
void |
propertyChange(java.beans.PropertyChangeEvent pce)
performs critique asap |
void |
propertySet(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
recovered(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
removed(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
removeToDoItems(ToDoList list)
Remove all the items in the given list from my list. |
void |
roleAdded(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
roleRemoved(ru.novosoft.uml.MElementEvent mee)
TODO: remove this |
void |
run()
Continuously select and execute critics against this designer's design. |
void |
setAutoCritique(boolean b)
see getAutoCritique() |
void |
setChildGenerator(org.tigris.gef.util.ChildGenerator cg)
needs documenting |
void |
setClarifier(javax.swing.Icon clarifier)
get the generic clarifier for this designer/poster |
void |
setCritiquingInterval(int i)
needs documenting |
static void |
setCritiquingRoot(java.lang.Object d)
needs documenting |
void |
setDecisionPriority(java.lang.String decision,
int priority)
Record the extent to which the designer is considering the given decision. |
void |
setExpertEmail(java.lang.String addr)
needs documenting |
void |
setGoalPriority(java.lang.String goal,
int priority)
needs documenting |
void |
snooze()
empty |
void |
spawnCritiquer(java.lang.Object root)
Start a separate thread to continually select and execute critics that are relevant to this designer's work. |
void |
startConsidering(Decision d)
needs documenting |
void |
startConsidering(java.lang.String decision)
needs documenting |
void |
startDesiring(java.lang.String goal)
needs documenting |
boolean |
stillValid(ToDoItem i,
Designer d)
This method returns true. |
void |
stopConsidering(Decision d)
needs documenting |
void |
stopConsidering(java.lang.String decision)
needs documenting |
void |
stopDesiring(java.lang.String goal)
needs documenting |
boolean |
supports(Decision d)
needs documenting |
boolean |
supports(Goal g)
just returns true |
static Designer |
theDesigner()
needs documenting |
static void |
theDesigner(Designer d)
needs documenting |
java.lang.String |
toString()
needs documenting |
void |
unsnooze()
empty |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Field Detail |
protected static org.apache.log4j.Logger cat
public static Designer TheDesigner
public static boolean _userWorking
public static java.util.Vector UNSPEC_DECISION_VECTOR
public static java.util.Vector UNSPEC_GOAL_VECTOR
private ToDoList _toDoList
private java.util.Properties _prefs
private java.lang.String _emailAddr
private DecisionModel _decisions
Decisions are currently modeled as simple descriptive strings.
Each decision also has a priority number which is ill defined, but positive Ints mean that the designer is considering it. This explicit representation of what decisions the designer is interested in at a given moment allows the Agency to select relevant critics for execution.
private GoalModel _goals
private Agency _agency
private javax.swing.Icon _clarifier
private java.lang.Thread _critiquer
private int _critiquingInterval
private int _critiqueCPUPercent
private boolean _autoCritique
private java.util.Vector _hotQueue
private java.util.Vector _hotReasonQueue
private java.util.Vector _addQueue
private java.util.Vector _addReasonQueue
private java.util.Vector _removeQueue
public static int _longestAdd
public static int _longestHot
private java.util.Vector _warmQueue
private org.tigris.gef.util.ChildGenerator _cg
private static java.lang.Object _CritiquingRoot
protected long _critiqueDuration
protected int _critiqueLock
protected long _lastCritique
Constructor Detail |
private Designer()
Method Detail |
public static void theDesigner(Designer d)
public static Designer theDesigner()
public void spawnCritiquer(java.lang.Object root)
public void run()
run
in interface java.lang.Runnable
public void critiqueASAP(java.lang.Object dm, java.lang.String reason)
public void critique(Design des)
public void propertyChange(java.beans.PropertyChangeEvent pce)
propertyChange
in interface java.beans.PropertyChangeListener
public void propertySet(ru.novosoft.uml.MElementEvent mee)
propertySet
in interface ru.novosoft.uml.MElementListener
public void listRoleItemSet(ru.novosoft.uml.MElementEvent mee)
listRoleItemSet
in interface ru.novosoft.uml.MElementListener
public void recovered(ru.novosoft.uml.MElementEvent mee)
recovered
in interface ru.novosoft.uml.MElementListener
public void removed(ru.novosoft.uml.MElementEvent mee)
removed
in interface ru.novosoft.uml.MElementListener
public void roleAdded(ru.novosoft.uml.MElementEvent mee)
roleAdded
in interface ru.novosoft.uml.MElementListener
public void roleRemoved(ru.novosoft.uml.MElementEvent mee)
roleRemoved
in interface ru.novosoft.uml.MElementListener
public void determineActiveCritics()
public boolean getAutoCritique()
public void setAutoCritique(boolean b)
public int getCritiquingInterval()
public void setCritiquingInterval(int i)
public static void disableCritiquing()
public static void enableCritiquing()
public static void clearCritiquing()
public static void setCritiquingRoot(java.lang.Object d)
public static java.lang.Object getCritiquingRoot()
public org.tigris.gef.util.ChildGenerator getChildGenerator()
public void setChildGenerator(org.tigris.gef.util.ChildGenerator cg)
public DecisionModel getDecisionModel()
public java.util.Vector getDecisions()
public GoalModel getGoalModel()
public java.util.Vector getGoals()
public boolean stillValid(ToDoItem i, Designer d)
ToDoItem's that are posted by the designer are assumed to be valid until the designer explicitly removes them. Perhaps in the future the designer could specify a condition to determine when his items expire.
stillValid
in interface Poster
ToDoItem
,
Critic.stillValid(org.argouml.cognitive.ToDoItem, org.argouml.cognitive.Designer)
public boolean supports(Decision d)
supports
in interface Poster
public java.util.Vector getSupportedDecisions()
getSupportedDecisions
in interface Poster
public boolean supports(Goal g)
supports
in interface Poster
public java.util.Vector getSupportedGoals()
getSupportedGoals
in interface Poster
public boolean containsKnowledgeType(java.lang.String type)
containsKnowledgeType
in interface Poster
public java.lang.String expand(java.lang.String desc, org.tigris.gef.util.VectorSet offs)
expand
in interface Poster
public javax.swing.Icon getClarifier()
getClarifier
in interface Poster
public void setClarifier(javax.swing.Icon clarifier)
public ToDoList getToDoList()
ToDoList
public void addToDoItems(ToDoList list)
public void removeToDoItems(ToDoList list)
public java.util.Properties getPrefs()
public boolean isConsidering(java.lang.String decision)
public boolean isConsidering(Decision d)
public void setDecisionPriority(java.lang.String decision, int priority)
public void defineDecision(java.lang.String decision, int priority)
public void startConsidering(java.lang.String decision)
public void startConsidering(Decision d)
public void stopConsidering(java.lang.String decision)
public void stopConsidering(Decision d)
public boolean hasGoal(java.lang.String goal)
public void setGoalPriority(java.lang.String goal, int priority)
public void startDesiring(java.lang.String goal)
public void stopDesiring(java.lang.String goal)
public java.lang.String getExpertEmail()
getExpertEmail
in interface Poster
public void setExpertEmail(java.lang.String addr)
setExpertEmail
in interface Poster
public void snooze()
snooze
in interface Poster
public void unsnooze()
unsnooze
in interface Poster
public Agency getAgency()
public void inform(ToDoItem item)
public void disruptivelyWarn(ToDoItem item)
public void nondisruptivelyWarn(ToDoItem item)
public int disruptiveThreshold()
public java.lang.String toString()
public void fixIt(ToDoItem item, java.lang.Object arg)
fixIt
in interface Poster
public boolean canFixIt(ToDoItem item)
canFixIt
in interface Poster
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
ArgoUML © 1996-2004 (20040316) | ArgoUML Homepage | ArgoUML Developers' page | ArgoUML Cookbook |