本文整理汇总了C++中UMLAttribute::setInitialValue方法的典型用法代码示例。如果您正苦于以下问题:C++ UMLAttribute::setInitialValue方法的具体用法?C++ UMLAttribute::setInitialValue怎么用?C++ UMLAttribute::setInitialValue使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UMLAttribute
的用法示例。
在下文中一共展示了UMLAttribute::setInitialValue方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: parseAssignmentStmt
/**
* Parse assignments in the form <identifier> '=' <value>
* Instance variables are identified by a prefixed 'self.'.
* @return success status of parsing
*/
bool PythonImport::parseAssignmentStmt(const QString keyword)
{
QString variable = keyword;
advance();
QString value = advance();
if (value == QLatin1String("-"))
value.append(advance());
bool isStatic = true;
if (variable.startsWith(QLatin1String("self."))) {
variable.remove(0,5);
isStatic = false;
}
Uml::Visibility::Enum visibility = Uml::Visibility::Public;
if (variable.startsWith(QLatin1String("__"))) {
visibility = Uml::Visibility::Private;
variable.remove(0, 2);
} else if (variable.startsWith(QLatin1String("_"))) {
visibility = Uml::Visibility::Protected;
variable.remove(0, 1);
}
QString type;
if (value == QLatin1String("[")) {
if (lookAhead() == QLatin1String("]")) {
advance();
type = QLatin1String("list");
value = QLatin1String("");
}
} else if (value == QLatin1String("{")) {
if (lookAhead() == QLatin1String("}")) {
advance();
type = QLatin1String("dict");
value = QLatin1String("");
}
} else if (value.startsWith(QLatin1String("\""))) {
type = QLatin1String("string");
} else if (value == QLatin1String("True") || value == QLatin1String("False")) {
type = QLatin1String("bool");
} else if (value.contains(QRegExp(QLatin1String("-?\\d+\\.\\d*")))) {
type = QLatin1String("float");
} else if (value.contains(QRegExp(QLatin1String("-?\\d+")))) {
type = QLatin1String("int");
} else if (!value.isEmpty()) {
type = QLatin1String("object");
}
UMLObject* o = Import_Utils::insertAttribute(m_klass, visibility, variable,
type, m_comment, false);
UMLAttribute* a = o->asUMLAttribute();
a->setInitialValue(value);
a->setStatic(isStatic);
return true;
}
示例2: slotNewParameter
void UMLOperationDialog::slotNewParameter() {
int result = 0;
UMLAttribute* pAtt = 0;
QString currentName = m_pOperation->getUniqueParameterName();
UMLAttribute* newAttribute = new UMLAttribute(m_pOperation, currentName, Uml::id_Reserved);
ParmPropDlg dlg(this, m_doc, newAttribute);
result = dlg.exec();
QString name = dlg.getName();
pAtt = m_pOperation -> findParm( name );
if( result ) {
if( name.length() == 0 ) {
KMessageBox::error(this, i18n("You have entered an invalid parameter name."),
i18n("Parameter Name Invalid"), false);
delete newAttribute;
return;
}
if( !pAtt ) {
newAttribute->setID( UniqueID::gen() );
newAttribute->setName( name );
newAttribute->setTypeName( dlg.getTypeName() );
newAttribute->setInitialValue( dlg.getInitialValue() );
newAttribute->setDoc( dlg.getDoc() );
newAttribute->setParmKind( dlg.getParmKind() );
m_pOperation->addParm( newAttribute );
m_pParmsLB -> insertItem( name );
m_doc -> setModified( true );
} else {
KMessageBox::sorry(this, i18n("The parameter name you have chosen\nis already being used in this operation."),
i18n("Parameter Name Not Unique"), false);
delete newAttribute;
}
} else {
delete newAttribute;
}
}
示例3: parseStmt
//.........这里部分代码省略.........
// The controlling parameter is suppressed.
parNameCount--;
if (parNameCount) {
for (uint i = 0; i < parNameCount; ++i) {
parName[i] = parName[i + 1];
}
}
}
for (uint i = 0; i < parNameCount; ++i) {
UMLAttribute *att = Import_Utils::addMethodParameter(op, typeName, parName[i]);
att->setParmKind(dir);
}
if (advance() != QLatin1String(";"))
break;
}
if (keyword == QLatin1String("function")) {
if (advance() != QLatin1String("return")) {
if (klass)
uError() << "importAda: expecting \"return\" at function "
<< name;
return false;
}
returnType = expand(advance());
returnType.remove(QLatin1String("Standard."), Qt::CaseInsensitive);
}
bool isAbstract = false;
if (advance() == QLatin1String("is") && advance() == QLatin1String("abstract"))
isAbstract = true;
if (klass != NULL && op != NULL)
Import_Utils::insertMethod(klass, op, m_currentAccess, returnType,
false, isAbstract, false, false, m_comment);
skipStmt();
return true;
}
if (keyword == QLatin1String("task") || keyword == QLatin1String("protected")) {
// Can task and protected objects/types be mapped to UML?
QString name = advance();
if (name == QLatin1String("type")) {
name = advance();
}
QString next = advance();
if (next == QLatin1String("(")) {
skipStmt(QLatin1String(")")); // skip discriminant
next = advance();
}
if (next == QLatin1String("is"))
skipStmt(QLatin1String("end"));
skipStmt();
return true;
}
if (keyword == QLatin1String("for")) { // rep spec
QString typeName = advance();
QString next = advance();
if (next == QLatin1String("'")) {
advance(); // skip qualifier
next = advance();
}
if (next == QLatin1String("use")) {
if (advance() == QLatin1String("record"))
skipStmt(QLatin1String("end"));
} else {
uError() << "importAda: expecting \"use\" at rep spec of "
<< typeName;
}
skipStmt();
return true;
}
// At this point we're only interested in attribute declarations.
if (m_klass == NULL || keyword == QLatin1String("null")) {
skipStmt();
return true;
}
const QString& name = keyword;
if (advance() != QLatin1String(":")) {
uError() << "adaImport: expecting \":\" at " << name << " "
<< m_source[m_srcIndex];
skipStmt();
return true;
}
QString nextToken = advance();
if (nextToken == QLatin1String("aliased"))
nextToken = advance();
QString typeName = expand(nextToken);
QString initialValue;
if (advance() == QLatin1String(":=")) {
initialValue = advance();
QString token;
while ((token = advance()) != QLatin1String(";")) {
initialValue.append(QLatin1Char(' ') + token);
}
}
UMLObject *o = Import_Utils::insertAttribute(m_klass, m_currentAccess, name,
typeName, m_comment);
if (o) {
UMLAttribute *attr = static_cast<UMLAttribute*>(o);
attr->setInitialValue(initialValue);
}
skipStmt();
return true;
}
示例4: slotEditFinished
/**
* This slot is called to finish item editing
*/
void UMLListViewItem::slotEditFinished(const QString &newText)
{
m_label = text(0);
DEBUG(DBG_LVI) << this << "text=" << newText;
UMLListView* listView = static_cast<UMLListView*>(treeWidget());
UMLDoc* doc = listView->document();
if (newText == m_label) {
return;
}
if (newText.isEmpty()) {
cancelRenameWithMsg();
return;
}
switch (m_type) {
case lvt_UseCase:
case lvt_Actor:
case lvt_Class:
case lvt_Package:
case lvt_UseCase_Folder:
case lvt_Logical_Folder:
case lvt_Component_Folder:
case lvt_Deployment_Folder:
case lvt_EntityRelationship_Folder:
case lvt_Interface:
case lvt_Datatype:
case lvt_Enum:
case lvt_EnumLiteral:
case lvt_Subsystem:
case lvt_Component:
case lvt_Port:
case lvt_Node:
case lvt_Category:
if (m_object == 0 || !doc->isUnique(newText)) {
cancelRenameWithMsg();
return;
}
UMLApp::app()->executeCommand(new Uml::CmdRenameUMLObject(m_object, newText));
doc->setModified(true);
m_label = newText;
break;
case lvt_Operation: {
if (m_object == 0) {
cancelRenameWithMsg();
return;
}
UMLOperation *op = static_cast<UMLOperation*>(m_object);
UMLClassifier *parent = static_cast<UMLClassifier *>(op->parent());
Model_Utils::OpDescriptor od;
Model_Utils::Parse_Status st = Model_Utils::parseOperation(newText, od, parent);
if (st == Model_Utils::PS_OK) {
// TODO: Check that no operation with the exact same profile exists.
UMLApp::app()->executeCommand(new Uml::CmdRenameUMLObject(op, od.m_name));
op->setType(od.m_pReturnType);
UMLAttributeList parmList = op->getParmList();
const int newParmListCount = parmList.count();
if (newParmListCount > od.m_args.count()) {
// Remove parameters at end of of list that no longer exist.
for (int i = od.m_args.count(); i < newParmListCount; i++) {
UMLAttribute *a = parmList.at(i);
op->removeParm(a, false);
}
}
Model_Utils::NameAndType_ListIt lit = od.m_args.begin();
for (int i = 0; lit != od.m_args.end(); ++lit, ++i) {
const Model_Utils::NameAndType& nm_tp = *lit;
UMLAttribute *a;
if (i < newParmListCount) {
a = parmList.at(i);
} else {
a = new UMLAttribute(op);
a->setID(UniqueID::gen());
}
UMLApp::app()->executeCommand(new Uml::CmdRenameUMLObject(a, nm_tp.m_name));
a->setType(nm_tp.m_type);
a->setParmKind(nm_tp.m_direction);
a->setInitialValue(nm_tp.m_initialValue);
if (i >= newParmListCount) {
op->addParm(a);
}
}
m_label = op->toString(Uml::SignatureType::SigNoVis);
} else {
KMessageBox::error(0,
Model_Utils::psText(st),
i18n("Rename canceled"));
}
setText(m_label);
break;
}
case lvt_Attribute:
case lvt_EntityAttribute: {
if (m_object == 0) {
cancelRenameWithMsg();
return;
//.........这里部分代码省略.........
示例5: parseStmt
//.........这里部分代码省略.........
skipStmt();
return true;
}
if (keyword == "file") { // @todo implement Pascal file types
skipStmt();
return true;
}
if (keyword == "^") { // @todo implement Pascal pointer types
skipStmt();
return true;
}
if (keyword == "class" || keyword == "interface") {
Uml::Object_Type t = (keyword == "class" ? Uml::ot_Class : Uml::ot_Interface);
UMLObject *ns = Import_Utils::createUMLObject(t, name,
m_scope[m_scopeIndex], m_comment);
UMLClassifier *klass = static_cast<UMLClassifier*>(ns);
m_comment.clear();
QString lookAhead = m_source[m_srcIndex + 1];
if (lookAhead == "(") {
advance();
do {
QString base = advance();
UMLObject *ns = Import_Utils::createUMLObject(Uml::ot_Class, base, NULL);
UMLClassifier *parent = static_cast<UMLClassifier*>(ns);
m_comment.clear();
Import_Utils::createGeneralization(klass, parent);
} while (advance() == ",");
if (m_source[m_srcIndex] != ")") {
uError() << "PascalImport: expecting \")\" at "
<< m_source[m_srcIndex];
return false;
}
lookAhead = m_source[m_srcIndex + 1];
}
if (lookAhead == ";") {
skipStmt();
return true;
}
if (lookAhead == "of") {
// @todo implement class-reference type
return false;
}
m_klass = klass;
m_currentAccess = Uml::Visibility::Public;
return true;
}
if (keyword == "record") {
UMLObject *ns = Import_Utils::createUMLObject(Uml::ot_Class, name,
m_scope[m_scopeIndex], m_comment);
ns->setStereotype("record");
m_klass = static_cast<UMLClassifier*>(ns);
return true;
}
if (keyword == "function" || keyword == "procedure") {
/*UMLObject *ns =*/ Import_Utils::createUMLObject(Uml::ot_Datatype, name,
m_scope[m_scopeIndex], m_comment);
if (m_source[m_srcIndex + 1] == "(")
skipToClosing('(');
skipStmt();
return true;
}
// Datatypes: TO BE DONE
return false;
}
// At this point we need a class because we're expecting its member attributes.
if (m_klass == NULL) {
uDebug() << "importPascal: skipping " << m_source[m_srcIndex];
skipStmt();
return true;
}
QString name, stereotype;
if (keyword == "property") {
stereotype = keyword;
name = advance();
} else {
name = m_source[m_srcIndex];
}
if (advance() != ":") {
uError() << "PascalImport: expecting \":\" at " << name << " "
<< m_source[m_srcIndex];
skipStmt();
return true;
}
QString typeName = advance();
QString initialValue;
if (advance() == "=") {
initialValue = advance();
QString token;
while ((token = advance()) != ";") {
initialValue.append(' ' + token);
}
}
UMLObject *o = Import_Utils::insertAttribute(m_klass, m_currentAccess, name,
typeName, m_comment);
UMLAttribute *attr = static_cast<UMLAttribute*>(o);
attr->setStereotype(stereotype);
attr->setInitialValue(initialValue);
skipStmt();
return true;
}