void ClassDiagramView::read(char * st, char * k) { UmlCanvas * canvas = the_canvas(); // reads first the classes package icons text notes and images while (CdClassCanvas::read(st, canvas, k) || NoteCanvas::read(st, canvas, k) || TextCanvas::read(st, canvas, k) || IconCanvas::read(st, canvas, k) || PackageCanvas::read(st, canvas, k) || FragmentCanvas::read(st, canvas, k) || ImageCanvas::read(st, canvas, k)) k = read_keyword(st); // then reads relations and anchors while (ArrowCanvas::read(st, canvas, k) || RelationCanvas::read(st, canvas, k) || SimpleRelationCanvas::read(st, canvas, k)) k = read_keyword(st); if (!strcmp(k, "preferred_whz") || !strcmp(k, "prefered_whz")) { preferred_size.setWidth(read_unsigned(st)); preferred_size.setHeight(read_unsigned(st)); preferred_zoom = read_double(st); k = read_keyword(st); } if (strcmp(k, "end")) wrong_keyword(k, "end"); }
void ActivityData::read(char *& st, char *& k) { BasicData::read(st, k); // updates k uml_condition.read(st, k, "pre_uml", "post_uml"); // updates k cpp_condition.read(st, k, "pre_cpp", "post_cpp"); // updates k java_condition.read(st, k, "pre_java", "post_java"); // updates k if (!strcmp(k, "constraint")) { constraint = read_string(st); k = read_keyword(st); } else constraint = ""; if (! strcmp(k, "read_only")) { read_only = TRUE; k = read_keyword(st); } if (! strcmp(k, "single_execution")) { single_execution = TRUE; k = read_keyword(st); } if (!strcmp(k, "active")) { is_active = TRUE; k = read_keyword(st); } if (! strcmp(k, "specification")) { set_specification(BrowserOperation::read_ref(st)); k = read_keyword(st); } }
void ClassInstanceData::read(char *& st, char *& k) { BasicData::read(st, k); // updates k if (strcmp(k, "type")) wrong_keyword(k, "type"); cl = BrowserClass::read_ref(st, 0); read_keyword(st, "attributes"); while (strcmp(k = read_keyword(st), "end")) { BrowserAttribute * a = BrowserAttribute::read(st, k, 0, TRUE); attributes.append(SlotAttr(a, read_string(st))); } read_keyword(st, "relations"); while (strcmp(k = read_keyword(st), "end")) { RelationData * r = RelationData::read_ref(st, TRUE, k); relations.append(SlotRel(TRUE, r, BrowserClassInstance::read_ref(st))); } k = read_keyword(st); }
void ComponentDiagramView::read(char * st, char * k) { UmlCanvas * canvas = the_canvas(); // reads first component package icons notes junctions text and images while (ComponentCanvas::read(st, canvas, k) || NoteCanvas::read(st, canvas, k) || TextCanvas::read(st, canvas, k) || IconCanvas::read(st, canvas, k) || PackageCanvas::read(st, canvas, k) || FragmentCanvas::read(st, canvas, k) || ArrowJunctionCanvas::read(st, canvas, k) || ImageCanvas::read(st, canvas, k)) k = read_keyword(st); // then reads relations and anchors ArrowCanvas * a; while (((a = ArrowCanvas::read(st, canvas, k)) != 0) || ((a = SimpleRelationCanvas::read(st, canvas, k)) != 0)) { a->get_start()->check_line(a); k = read_keyword(st); } if (!strcmp(k, "preferred_whz") || !strcmp(k, "prefered_whz")) { preferred_size.setWidth(read_unsigned(st)); preferred_size.setHeight(read_unsigned(st)); preferred_zoom = read_double(st); k = read_keyword(st); } if (strcmp(k, "end")) wrong_keyword(k, "end"); }
void BrowserNode::read(char * & st, char * & k, int id) { if (in_lib_import()) { original_id = id; is_read_only = TRUE; if (! strcmp(k, "oid")) { // a sub lib is imported as a part of the imported lib (void) read_id(st); k = read_keyword(st); } } else if (! strcmp(k, "oid")) { original_id = read_id(st); is_read_only = TRUE; k = read_keyword(st); } HaveKeyValueData::read(st, k); if (!strcmp(k, "comment")) { comment = read_string(st); k = read_keyword(st); } is_new = FALSE; }
SimpleRelationData * SimpleRelationData::read(char * & st) { SimpleRelationData * result = new SimpleRelationData(relation_type(read_keyword(st), TRUE)); char * k = read_keyword(st); result->BasicData::read(st, k); // updates k if (strcmp(k, "on")) wrong_keyword(k, "on"); k = read_keyword(st); // note : BrowserArtifact::read get Component def on component -> artifact if (((result->end = BrowserArtifact::read(st, k, 0)) == 0) && ((result->end = BrowserComponent::read(st, k, 0)) == 0) && ((result->end = BrowserUseCase::read(st, k, 0)) == 0) && ((result->end = BrowserPackage::read(st, k, 0, FALSE)) == 0) && ((result->end = BrowserDeploymentNode::read(st, k, 0)) == 0) && ((result->end = BrowserActivity::read(st, k, 0)) == 0) && ((result->end = BrowserActivityAction::read(st, k, 0)) == 0) && ((result->end = BrowserActivityObject::read(st, k, 0)) == 0) && ((result->end = BrowserClass::read(st, k, 0)) == 0)) wrong_keyword(k, "a ref to a class, component, usecase, package, deployment node, activity, activity action or activity object"); connect(result->end->get_data(), SIGNAL(deleted()), result, SLOT(end_deleted())); return result; }
void ObjectDiagramView::read(char * st, char * k) { UmlCanvas * canvas = the_canvas(); // reads first the instances, package, fragment notes, icons text and image while (OdClassInstCanvas::read(st, canvas, k) || NoteCanvas::read(st, canvas, k) || TextCanvas::read(st, canvas, k) || IconCanvas::read(st, canvas, k) || PackageCanvas::read(st, canvas, k) || FragmentCanvas::read(st, canvas, k) || ImageCanvas::read(st, canvas, k)) k = read_keyword(st); // then reads links while (ObjectLinkCanvas::read(st, canvas, k)) k = read_keyword(st); // then reads anchors while (ArrowCanvas::read(st, canvas, k)) k = read_keyword(st); if (!strcmp(k, "preferred_whz") || !strcmp(k, "prefered_whz")) { preferred_size.setWidth(read_unsigned(st)); preferred_size.setHeight(read_unsigned(st)); preferred_zoom = read_double(st); k = read_keyword(st); } if (strcmp(k, "end")) wrong_keyword(k, "end"); }
TransitionData * TransitionData::read(char * & st, char * & k) { TransitionData * result = new TransitionData; result->BasicData::read(st, k); // updates k if (strcmp(k, "on")) wrong_keyword(k, "on"); k = read_keyword(st); if (((result->end = BrowserState::read(st, k, 0)) == 0) && ((result->end = BrowserPseudoState::read(st, k, 0)) == 0) && ((result->end = BrowserStateAction::read(st, k, 0)) == 0)) wrong_keyword(k, "a ref to a state or action or pseudo state"); connect(result->end->get_data(), SIGNAL(deleted()), result, SLOT(end_deleted())); k = read_keyword(st); result->uml.read(st, k, "uml"); // update k result->cpp.read(st, k, "cpp"); // update k result->java.read(st, k, "java"); // update k return result; }
void DeploymentDiagramView::read(char * st, char * k) { UmlCanvas * canvas = the_canvas(); // reads first deploymentnode component icons text notes and image while (DeploymentNodeCanvas::read(st, canvas, k) || // reads artifact before component to manage component -> artifact ArtifactCanvas::read(st, canvas, k) || ComponentCanvas::read(st, canvas, k) || HubCanvas::read(st, canvas, k) || NoteCanvas::read(st, canvas, k) || TextCanvas::read(st, canvas, k) || IconCanvas::read(st, canvas, k) || PackageCanvas::read(st, canvas, k) || FragmentCanvas::read(st, canvas, k) || ImageCanvas::read(st, canvas, k)) k = read_keyword(st); // then reads relations and anchors while (ArrowCanvas::read(st, canvas, k) || AssocContainCanvas::read(st, canvas, k) || SimpleRelationCanvas::read(st, canvas, k)) k = read_keyword(st); if (!strcmp(k, "preferred_whz") || !strcmp(k, "prefered_whz")) { preferred_size.setWidth(read_unsigned(st)); preferred_size.setHeight(read_unsigned(st)); preferred_zoom = read_double(st); k = read_keyword(st); } if (strcmp(k, "end")) wrong_keyword(k, "end"); }
UcUseCaseCanvas * UcUseCaseCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "usecasecanvas_ref")) return ((UcUseCaseCanvas *) dict_get(read_id(st), "usecasecanvas", canvas)); else if (!strcmp(k, "usecasecanvas")) { int id = read_id(st); BrowserNode * br = BrowserUseCase::read_ref(st); UmlColor color = UmlDefaultColor; k = read_keyword(st); read_color(st, "color", color, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); int x = (int) read_double(st); UcUseCaseCanvas * result = new UcUseCaseCanvas(br, canvas, x, (int) read_double(st), id); result->itscolor = color; read_zwh(st, result); result->width_scale100 = result->width(); result->height_scale100 = result->height(); result->set_center100(); k = read_keyword(st); result->update_name(); read_xy(st, result->label); result->label->setZ(result->z() + 0.5); result->label->set_center100(); if (!strcmp(k, "label_xyz")) // old version read_double(st); else if (strcmp(k, "label_xy")) wrong_keyword(k, "label_xy/label_xyz"); if (read_file_format() >= 58) { k = read_keyword(st); result->read_stereotype_property(st, k); // updates k if (strcmp(k, "end")) wrong_keyword(k, "end"); } result->show(); result->check_stereotypeproperties(); return result; } else return 0; }
PackageCanvas * PackageCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "packagecanvas_ref")) return ((PackageCanvas *) dict_get(read_id(st), "packagecanvas", canvas)); else if (!strcmp(k, "packagecanvas")) { int id = read_id(st); BrowserNode * br = BrowserPackage::read_ref(st); UmlColor color = UmlDefaultColor; Uml3States in_tab = UmlDefaultState; ShowContextMode context = DefaultShowContextMode; Uml3States show_stereotype_properties = UmlDefaultState;; k = read_keyword(st); if (!strcmp(k, "name_in_tab")) { in_tab = state(read_keyword(st)); k = read_keyword(st); } if (!strcmp(k, "show_context_mode")) { context = context_mode(read_keyword(st)); k = read_keyword(st); } if (!strcmp(k, "show_stereotype_properties")) { show_stereotype_properties = state(read_keyword(st)); k = read_keyword(st); } read_color(st, "color", color, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); int x = (int) read_double(st); PackageCanvas * result = new PackageCanvas(br, canvas, x, (int) read_double(st), id); read_zwh(st, result); if (read_file_format() >= 58) { k = read_keyword(st); result->read_stereotype_property(st, k); // updates k if (strcmp(k, "end")) wrong_keyword(k, "end"); } result->name_in_tab = in_tab; result->show_context_mode = context; result->show_stereotype_properties = show_stereotype_properties; result->itscolor = color; result->check_size(); result->set_center100(); result->show(); result->check_stereotypeproperties(); return result; } else return 0; }
ActivityPartitionCanvas * ActivityPartitionCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "activitypartitioncanvas_ref")) return ((ActivityPartitionCanvas *) dict_get(read_id(st), "activitypartitioncanvas", canvas)); else if (!strcmp(k, "activitypartitioncanvas")) { int id = read_id(st); BrowserActivityPartition * br = BrowserActivityPartition::read_ref(st); ActivityPartitionCanvas * result = new ActivityPartitionCanvas(canvas, id); result->browser_node = br; connect(br->get_data(), SIGNAL(changed()), result, SLOT(modified())); connect(br->get_data(), SIGNAL(deleted()), result, SLOT(deleted())); k = read_keyword(st); read_color(st, "color", result->itscolor, k); // updates k if (! strcmp(k, "horiz")) { result->horiz = TRUE; k = read_keyword(st); } result->read_stereotype_property(st, k); // updates k if (!strcmp(k, "xyzwh")) read_xyzwh(st, result); else wrong_keyword(k, "xyzwh"); result->check_size(); result->width_scale100 = result->width(); result->height_scale100 = result->height(); result->set_center100(); result->show(); result->check_stereotypeproperties(); read_keyword(st, "end"); // result->force_sub_inside() useless if (canvas->paste()) result->remove_if_already_present(); return result; } else return 0; }
AST* readASTMisc(BufferedReader *reader) { uint8_t type = reader->readByte(); if (VERBOSITY("parsing") >= 2) printf("type = %d\n", type); if (type == 0) return NULL; uint8_t checkbyte = reader->readByte(); assert(checkbyte == 0xae); switch (type) { case AST_TYPE::alias: return read_alias(reader); case AST_TYPE::arguments: return read_arguments(reader); case AST_TYPE::comprehension: return read_comprehension(reader); case AST_TYPE::keyword: return read_keyword(reader); case AST_TYPE::Module: return read_module(reader); default: fprintf(stderr, "Unknown node type (parser.cpp:" STRINGIFY(__LINE__) "): %d\n", type); exit(1); break; } }
void NoteCanvas::read_internal(char *& st) { const char * p = st; QTextCodec* codec = QTextCodec::codecForLocale(); QTextStream stream(p); stream.setCodec(codec); QByteArray ba; stream >> ba; QString temp = QString::fromLocal8Bit(ba); char* test = read_string(st); Q_UNUSED(test); note = temp; char * k = read_keyword(st); read_color(st, "color", itscolor, k); read_font(st, "font", itsfont, k); read_color(st, "fg", fg_c, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); read_xyzwh(st, this); width_scale100 = width(); height_scale100 = height(); set_center100(); show(); }
void HaveKeyValueData::read(char * & st, char * & k) { if (!strcmp(k, "ncouples")) { set_n_keys(read_unsigned(st)); for (unsigned i = 0; i != nkeyvalues; i += 1) { read_keyword(st, "key"); keyvalues[i].set_key(read_string(st)); read_keyword(st, "value"); keyvalues[i].set_value(read_string(st)); } k = read_keyword(st); } else set_n_keys(0); }
void StateBehavior::read(char * & st, char * & k, const char * lang) { int ln = strlen(lang); if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_on_entry")) { on_entry = read_string(st); k = read_keyword(st); } if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_on_exit")) { on_exit = read_string(st); k = read_keyword(st); } if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_do_activity")) { do_activity = read_string(st); k = read_keyword(st); } }
SubjectCanvas * SubjectCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "subject_ref")) return (SubjectCanvas *) dict_get(read_id(st), "subject", canvas); else if (!strcmp(k, "subject")) { int id = read_id(st); SubjectCanvas * result = new SubjectCanvas(canvas, 0, 0, id); result->name = toUnicode(read_string(st)); k = read_keyword(st); read_color(st, "color", result->itscolor, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); read_xyzwh(st, result); result->check_size(); result->width_scale100 = result->width(); result->height_scale100 = result->height(); result->set_center100(); result->show(); return result; } else return 0; }
gint get_statpt(gchar *keyword, struct model_pak *model) { int len, tmp; if (g_ascii_strncasecmp(GMS_METHOD_TXT, keyword, len=strlen(GMS_METHOD_TXT)) == 0) { tmp = model->gamess.opt_type; if (read_keyword(&keyword[len], method_types, &tmp) > 0) { gui_text_show(ERROR, " unknown method "); gui_text_show(ERROR, &keyword[len]); gui_text_show(ERROR, " "); return(1); } return(0); } else if (g_ascii_strncasecmp(keyword, GMS_NSTEP_TXT, len=strlen(GMS_NSTEP_TXT)) == 0) model->gamess.nstep = str_to_float(&keyword[len]); else { gui_text_show(ERROR, " unknown keyword "); gui_text_show(ERROR, keyword); gui_text_show(ERROR, " "); return(1); } return(0); }
SdDurationCanvas * SdDurationCanvas::read(char * & st, UmlCanvas * canvas, bool ref) { return read(st, canvas, read_keyword(st, (ref) ? "durationcanvas_ref" : "durationcanvas")); }
SdSelfMsgCanvas * SdSelfMsgCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "reflexivemsg_ref")) return ((SdSelfMsgCanvas *) dict_get(read_id(st), "reflexivemsg", canvas)); if (!strcmp(k, "selfreflexivemsg_ref")) return ((SdSelfMsgCanvas *) dict_get(read_id(st), "selfreflexivemsg", canvas)); else if (!strcmp(k, "reflexivemsg") || !strcmp(k, "selfreflexivemsg")) { int id = read_id(st); UmlCode c; if (*k == 's') c = UmlSelfReturnMsg; else { k = read_keyword(st); if (!strcmp(k, "synchronous")) c = UmlSyncSelfMsg; else if (!strcmp(k, "asynchronous")) c = UmlAsyncSelfMsg; else { wrong_keyword(k, "synchronous/asynchronous"); return 0; // to avoid warning } } read_keyword(st, "to"); SdDurationCanvas * d = SdDurationCanvas::read(st, canvas, TRUE); k = read_keyword(st); SdSelfMsgCanvas * result = new SdSelfMsgCanvas(canvas, d, c, (int) read_double(st) - 1, id); if (!strcmp(k, "yz")) // new version result->setZ(read_double(st)); else if (strcmp(k, "y")) wrong_keyword(k, "y/yz"); result->SdMsgBaseCanvas::read(st); return result; } else return 0; }
SdDurationCanvas * SdDurationCanvas::read_internal(char * & st, UmlCanvas * canvas, int id, SdDurationSupport * sp) { UmlColor color = UmlDefaultColor; bool coreg = FALSE; char * k = read_keyword(st); if (!strcmp(k, "coregion")) { coreg = TRUE; k = read_keyword(st); } read_color(st, "color", color, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); int x = (int) read_double(st); int y = (int) read_double(st); double z = read_double(st); (void) read_double(st); // width not used to bypass old bug SdDurationCanvas * result = new SdDurationCanvas(canvas, sp, x, y, DURATION_WIDTH, (int) read_double(st), id, coreg); result->itscolor = color; result->setZ(z); result->update_hpos(); // in case the current font is not the original one result->set_center100(); result->show(); if (read_file_format() >= 48) { k = read_keyword(st); while (!strcmp(k, "overlappingdurationcanvas")) { (void) read_internal(st, canvas, read_id(st), result); k = read_keyword(st); } if (strcmp(k, "end")) wrong_keyword(k, "end"); } return result; }
void TransDef::read(char * & st, char * & k, const char * lang) { int ln = strlen(lang); if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_trigger")) { trigger = read_string(st); k = read_keyword(st); } if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_guard")) { guard = read_string(st); k = read_keyword(st); } if (!strncmp(k, lang, ln) && !strcmp(k+ln, "_expr")) { expr = read_string(st); k = read_keyword(st); } }
void BasicData::read(char * & st, char * & k) { if (!strcmp(k, "stereotype")) { set_stereotype(read_string(st)); k = read_keyword(st); } else set_stereotype(QString::null); }
void PseudoStateData::read(char * & st, char * & k) { if (!strcmp(k, "reference")) { set_reference(BrowserPseudoState::read_ref(st)); k = read_keyword(st); } BasicData::read(st, k); // updates k }
void ParamData::read(char *& st, char *& k) { if (strcmp(k, "param")) wrong_keyword(k, "param"); dir = direction(read_keyword(st)); read_keyword(st, "name"); name = read_string(st); type.read(st, "type", "explicit_type"); k = read_keyword(st); if (!strcmp(k, "defaultvalue")) { default_value = read_string(st); k = read_keyword(st); } }
void UseCaseData::read(char * & st, char * & k) { if (!strcmp(k, "extension_points")) { extension_points = toUnicode(read_string(st)); k = read_keyword(st); } BasicData::read(st, k); // updates k }
FragmentCanvas * FragmentCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "fragment_ref")) return (FragmentCanvas *) dict_get(read_id(st), "fragment", canvas); else if (!strcmp(k, "fragment")) { int id = read_id(st); FragmentCanvas * result = new FragmentCanvas(canvas, 0, 0, id); result->name = read_string(st); k = read_keyword(st); read_color(st, "color", result->itscolor, k); if (!strcmp(k, "refer")) { result->refer = BrowserDiagram::read_diagram_ref(st); connect(result->refer->get_data(), SIGNAL(changed()), result, SLOT(modified())); connect(result->refer->get_data(), SIGNAL(deleted()), result, SLOT(modified())); k = read_keyword(st); } if (! strcmp(k, "form")) { result->form = read_string(st); k = read_keyword(st); } if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); read_xyzwh(st, result); result->check_size(); result->width_scale100 = result->width(); result->height_scale100 = result->height(); result->set_center100(); result->show(); if (read_file_format() >= 28) { while (strcmp(k = read_keyword(st), "end")) result->separators.append(FragmentSeparatorCanvas::read(st, canvas, k, result)); } return result; } else return 0; }
DeploymentNodeCanvas * DeploymentNodeCanvas::read(char * & st, UmlCanvas * canvas, char * k) { if (!strcmp(k, "deploymentnodecanvas_ref")) return ((DeploymentNodeCanvas *) dict_get(read_id(st), "deploymentnodecanvas", canvas)); else if (!strcmp(k, "deploymentnodecanvas")) { int id = read_id(st); BrowserNode * br = BrowserDeploymentNode::read_ref(st); QString iname; Uml3States write_horizontally = UmlDefaultState; Uml3States show_stereotype_properties = UmlDefaultState; k = read_keyword(st); if (!strcmp(k, "name")) { iname = read_string(st); k = read_keyword(st); } if (!strcmp(k, "write_horizontally") || !strcmp(k, "write_horizontaly")) { write_horizontally = state(read_keyword(st)); k = read_keyword(st); } if (!strcmp(k, "show_stereotype_properties")) { show_stereotype_properties = state(read_keyword(st)); k = read_keyword(st); } UmlColor color = UmlDefaultColor; read_color(st, "color", color, k); if (strcmp(k, "xyzwh")) wrong_keyword(k, "xyzwh"); int x = (int) read_double(st); DeploymentNodeCanvas * result = new DeploymentNodeCanvas(br, canvas, x, (int) read_double(st), id); read_zwh(st, result); if (read_file_format() >= 58) { k = read_keyword(st); result->read_stereotype_property(st, k); // updates k if (strcmp(k, "end")) wrong_keyword(k, "end"); } result->iname = iname; result->write_horizontally = write_horizontally; result->show_stereotype_properties = show_stereotype_properties; result->itscolor = color; result->check_size(); result->set_center100(); result->show(); result->check_stereotypeproperties(); return result; } else return 0; }
void ParameterData::read(char * & st, char * & k) { BasicData::read(st, k); // updates k PinParamData::read(st, k); // updates k if (!strcmp(k, "defaultvalue")) { default_value = read_string(st); k = read_keyword(st); } }
void StateActionData::read(char *& st, char *& k) { BasicData::read(st, k); // updates k if (!strcmp(k, "uml")) { uml = read_string(st); k = read_keyword(st); } if (!strcmp(k, "cpp")) { cpp = read_string(st); k = read_keyword(st); } if (!strcmp(k, "java")) { java = read_string(st); k = read_keyword(st); } }