663 |
663 |
664 "Modified: / 25.10.1997 / 19:18:50 / cg" |
664 "Modified: / 25.10.1997 / 19:18:50 / cg" |
665 ! |
665 ! |
666 |
666 |
667 generateAspectMethodFor:aspect spec:protoSpec inClass:targetClass |
667 generateAspectMethodFor:aspect spec:protoSpec inClass:targetClass |
668 |modelClass modelValue modelGen code| |
668 |modelClass modelValueString modelValue modelGen code| |
669 |
669 |
670 modelClass := protoSpec defaultModelClassFor:aspect. |
670 modelClass := protoSpec defaultModelClassFor:aspect. |
671 modelValue := protoSpec defaultModelValueFor:aspect. |
671 modelValueString := protoSpec defaultModelValueStringFor:aspect. |
672 |
672 modelValueString notNil ifTrue:[ |
673 modelValue isNil ifTrue:[ |
673 modelGen := modelValueString |
674 modelGen := modelClass name , ' new' |
|
675 ] ifFalse:[ |
674 ] ifFalse:[ |
676 modelGen := modelValue storeString , ' asValue' |
675 modelValue := protoSpec defaultModelValueFor:aspect. |
|
676 modelValue isNil ifTrue:[ |
|
677 modelGen := modelClass name , ' new' |
|
678 ] ifFalse:[ |
|
679 modelGen := modelValue storeString , ' asValue' |
|
680 ]. |
|
681 |
677 ]. |
682 ]. |
678 |
683 |
679 code := '!!' , targetClass name , ' methodsFor:''aspects''!!\\' , |
684 code := '!!' , targetClass name , ' methodsFor:''aspects''!!\\' , |
680 aspect , '\' , |
685 aspect , '\' , |
681 ' "automatically generated by UIPainter ..."\\' , |
686 ' "automatically generated by UIPainter ..."\\' , |