*operation* void class_list ( ofstream& out1, ofstream& out2, ofstream& out3, ofstream& out4) *traverse* *from* Demeter_in *to* Instantiable *carry* *in* DemNumber* x = (@ this->numberOfReqAndOptClasses() ;@) *along* *from* Adjacency *to* Instantiable *carry* *in* Vertex* v = (@ this->get_source();@) *along* *from* Adjacency *to* Instantiable *wrapper* Demeter_in *prefix* (@ out1 << "static char *externalClass[] = {"; @) *suffix* (@ out1 << "NULL };" << endl; @) *wrapper* Instantiable *prefix* (@ static int num = 1; char *str = (v->get_vertex_name())->get_val(); out1 <<"\""<get_val(); int j = 0; this->find_class_type(i,j,out3); out3 << " );" << "\n\t\tTcl_CreateCommand(interp, addr2string(x), " << str << "ObjectHandler," << " (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL ) ;" << "\n\t\tstrcpy(interp->result,addr2string(x)) ;" << "\n\t\treturn TCL_OK ;" << endl; out4 << "\n\t\tTcl_CreateCommand(interp, argv[1], " << str << "ObjectHandler," << " (ClientData) NULL, (Tcl_CmdDeleteProc *) NULL ) ;" << "\n\t\treturn TCL_OK ;" << endl;@) *suffix* (@ num++; @) *operation* DemNumber* numberOfReqAndOptClasses() *init* (@ NULL @) *traverse* *from* Adjacency *to* Int_part *wrapper* Adjacency *prefix* (@ return_val = new DemNumber(0); @) *wrapper* Int_part *prefix* (@ return_val->set_val((return_val->get_val())+1);@) *operation* DemIdent* find_class_type(int& i, int& j, ostream& out3) *traverse* *from* Instantiable *to* Vertex *wrapper* Vertex (@ if ( i > 0 ) { if( i!= 1) out3 <<"("<get_vertex_name() <<"*)" << " axg[" << j << "],"; else out3 <<"("<< this->get_vertex_name() <<"*)" << " axg[" << j << "]"; } i--; j++; @)