CodeClassField * newCodeClassField(ClassifierCodeDocument *ccd, UMLRole *role) { CodeClassField *retval = NULL; switch (UMLApp::app()->activeLanguage()) { case Uml::ProgrammingLanguage::Cpp: retval = new CPPCodeClassField(ccd, role); break; case Uml::ProgrammingLanguage::D: retval = new DCodeClassField(ccd, role); break; case Uml::ProgrammingLanguage::Java: retval = new JavaCodeClassField(ccd, role); break; case Uml::ProgrammingLanguage::Ruby: retval = new RubyCodeClassField(ccd, role); break; default: break; } retval->finishInitialization(); return retval; }