#v3.3 ( PROPS (separator=\ diagramOrder="0,1" ) ) ( LOAD (7,0) (\) ( (R "comp212\public_html\05-spring\lectures\12\forsb\" "EmptyNode.java") (R "comp212\public_html\05-spring\lectures\12\forsb\" "ANode.java") (R "comp212\public_html\05-spring\lectures\12\" "Context.java") (R "comp212\public_html\05-spring\lectures\12\" "AState.java") (R "comp212\public_html\05-spring\lectures\12\forsb\" "NENode.java") (R "comp212\public_html\05-spring\lectures\12\forsb\" "LRStruct.java") (R "comp212\public_html\05-spring\lectures\12\forsb\" "IAlgo.java") ) ) ( SET "Linear Recursive Structure" (type=1 relLines=true dependLines=true inheritance=true implements=true notes=true offset=(0,0) scale=1.0 id=0 filters=(varOn=true,varMask=4095,methodOn=true,methParams=true,typesOn=true,methodMask=4095,innerObjs=true,customOn=false,implementedOn=true,recursiveOn=true)) ("lrs.IAlgo" (dependency=(lrs.LRStruct,operates^on) location=(20,17) size=(306,65) expand=true fullName=false) (("#D-opera-lrs.LRStruct" (57,82) (57,171) )) ("#NOTES" ()) ) ("lrs.LRStruct" (dependency=(lrs.IAlgo,calls^on) location=(21,171) size=(245,244) expand=true fullName=false) (("_head" (266,234) (373,234) )("#D-calls-lrs.IAlgo" (226,171) (226,82) )) ("#NOTES" (0)) ) ("lrs.ANode" (location=(373,170) size=(339,177) expand=true fullName=false) () ("#NOTES" (0)) ) ("lrs.NENode" (location=(126,495) size=(350,196) expand=true fullName=false) (("lrs.ANode" (307,495) (307,421) (534,421) (534,347) )("_tail" (161,495) (161,415) )) ("#NOTES" ()) ) ("lrs.EmptyNode" (location=(507,494) size=(339,180) expand=true fullName=false) (("lrs.ANode" (695,494) (695,421) (534,421) (534,347) )("Singleton" (846,669) (851,669) (851,679) (841,679) (841,674) )) ("#NOTES" ()) ) ("#NOTE" "State Design Pattern. \nLRStruct delegates all public method calls to its state, _head,\npassing itself and all required parameters. \nANode is the state and has package-private methods to\n\"abstractly\" do the job. EmptyNode and NENode are\nconcrete states and can call LRStruct to change its state\ndynamically." ((382,13) (316,124) (0)) ) ) ( SET "State Pattern" (type=1 relLines=true dependLines=true inheritance=true implements=true notes=true offset=(0,0) scale=1.0 id=1 filters=(varOn=true,varMask=4095,methodOn=true,methParams=true,typesOn=true,methodMask=4095,innerObjs=true,customOn=false,implementedOn=true,recursiveOn=true)) ("Context" (location=(35,131) size=(189,100) expand=true fullName=false) (("_state" (224,141) (333,141) )) ("#NOTES" (0)) ) ("AState" (location=(333,132) size=(273,49) expand=true fullName=false) () ("#NOTES" ()) ) ("#NOTE" "Forwards all public method calls to the state: \n_state.aBehavior\(inp, this\);" ((36,21) (251,52) (0)) ) ("#NOTE" "Have disctinct concrete behaviors and may\ncause the context to change its state." ((351,432) (246,54) (1)) ) )