7fd59977 |
1 | -- File: IFSelect_ModelModifier.cdl |
2 | -- Created: Mon Mar 21 16:07:03 1994 |
3 | -- Author: Christian CAILLET |
4 | -- <cky@ecolox> |
5 | ---Copyright: Matra Datavision 1994 |
6 | |
7 | |
8 | deferred generic class ModelModifier from IFSelect |
9 | (Model as InterfaceModel; Proto as Protocol from Interface) |
10 | inherits Modifier |
11 | |
12 | ---Purpose : Allows to precise the frame work for Model Modifiers able to |
13 | -- run with an Interface (such as STEP, VDA, IGES ...) |
14 | -- |
15 | -- Acts as a Modifier but properly casts Model and Protocol |
16 | -- according to each Interface, and refuses to work if cast |
17 | -- has failed (i.e. if it is not used in good context) |
18 | -- |
19 | -- Then, it is finer to make specific Model Modifier inherit |
20 | -- from an instantiated ModelModifier, instead of Modifier itself |
21 | -- (though it is not mandatory) |
22 | -- |
23 | -- For each Interface on which Model Modifiers have to be defined, |
24 | -- The way to follow is firstly to instantiate ModelModifier with |
25 | -- its specific data : |
26 | -- Model is the InterfaceModel specific to the considered norm |
27 | -- Then to define the various classes which inherit from it and |
28 | -- define their method Perform |
29 | |
30 | uses CString, InterfaceModel, Protocol from Interface, CopyTool, ContextModif |
31 | |
32 | is |
33 | |
34 | Initialize (maychangegraph : Boolean); |
35 | ---Purpose : Calls inherited Initialize, transmits to it the information |
36 | -- <maychangegraph> |
37 | |
38 | Perform (me; ctx : in out ContextModif; |
39 | target : mutable InterfaceModel; |
40 | protocol : Protocol from Interface; |
41 | TC : in out CopyTool); |
42 | ---Purpose : The inherited Perform does the required cast (and refuses to |
43 | -- go further if cast has failed) then calls the instantiated |
44 | -- Performing |
45 | |
46 | PerformProtocol (me; ctx : in out ContextModif; |
47 | target : mutable Model; |
48 | proto : Proto; |
49 | TC : in out CopyTool) is virtual; |
50 | ---Purpose : Specific Perform with Protocol. It is defined to let the |
51 | -- Protocol unused and to call Performing without Protocol |
52 | -- (most current case). It can be redefined if specific action |
53 | -- requires Protocol. |
54 | |
55 | Performing (me; ctx : in out ContextModif; |
56 | target : mutable Model; |
57 | TC : in out CopyTool) is deferred; |
58 | ---Purpose : Specific Perform, without Protocol. If Performing with |
59 | -- Protocol is redefined, Performing without Protocol must |
60 | -- though be defined to do nothing (not called, but demanded |
61 | -- by the linker) |
62 | |
63 | end ModelModifier; |