umbrello 2.38.4
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
Classes | Typedefs | Functions | Variables
Import_Rose Namespace Reference

Classes

class  AttributesReader
 
class  ClassifierListReader
 
class  LiteralsReader
 
class  OperationsReader
 
class  ParametersReader
 
class  RealizationsReader
 
class  SuperclassesReader
 
class  UsesReader
 

Typedefs

typedef QMap< QString, UMLWidget * > ViewTagToWidget_Map
 

Functions

void methodName (const QString &m)
 
QString mdlPath ()
 
QString loc ()
 
QStringList scan (const QString &lin)
 
QString shift (QStringList &l)
 
bool checkClosing (QStringList &tokens)
 
bool isImmediateValue (QString s)
 
QString extractImmediateValues (QStringList &l)
 
QString collectVerbatimText (QTextStream &stream)
 
QString extractValue (QStringList &l, QTextStream &stream)
 
PetalNodereadAttributes (QStringList initialArgs, QTextStream &stream)
 
UMLPackageloadFromMDL (QFile &file, UMLPackage *parentPkg)
 
QString clean (const QString &s)
 
Uml::ID::Type quid (const PetalNode *node)
 
QString quidu (const PetalNode *node)
 
QPointF fetchLocation (const PetalNode *node, qreal width, qreal height)
 
qreal fetchDouble (const PetalNode *node, const QString &attribute, bool applyRose2Qt=true)
 
qreal fetchInt (const PetalNode *node, const QString &attribute, int defaultValue=0)
 
UMLObject::ObjectType typeToCreate (const QString &name)
 
void transferVisibility (const PetalNode *from, UMLObject *to)
 
UMLPackagehandleControlledUnit (PetalNode *node, const QString &name, Uml::ID::Type id, UMLPackage *parentPkg)
 
void handleAssocView (PetalNode *attr, const PetalNode::NameValueList &parentAttrs, Uml::AssociationType::Enum assocType, UMLView *view, UMLObject *umlAssoc=0)
 
Uml::DiagramType::Enum diagramType (QString objType)
 
bool umbrellify (PetalNode *node, UMLPackage *parentPkg)
 
bool importView (PetalNode *root, UMLPackage *parent, const QString &rootName, const QString &modelsName, const QString &firstNodeName, const QString &presentationsName)
 
UMLPackagepetalTree2Uml (PetalNode *root, UMLPackage *parentPkg)
 

Variables

QString dirPrefix
 
Uml::ProgrammingLanguage::Enum progLang = Uml::ProgrammingLanguage::Reserved
 
uint nClosures
 
uint linum
 
QString g_methodName
 
const qreal Rose2Qt = 0.5
 
ViewTagToWidget_Map viewTagToWidget
 

Detailed Description

Rose model import

Author
Oliver Kellogg Bugs and comments to umbre.nosp@m.llo-.nosp@m.devel.nosp@m.@kde.nosp@m..org or https://bugs.kde.org

Traverse the PetalNode tree and create corresponding Umbrello objects for the PetalNodes encountered.

Author
Oliver Kellogg Bugs and comments to umbre.nosp@m.llo-.nosp@m.devel.nosp@m.@kde.nosp@m..org or https://bugs.kde.org

Typedef Documentation

◆ ViewTagToWidget_Map

Function Documentation

◆ checkClosing()

bool Import_Rose::checkClosing ( QStringList &  tokens)

Check for closing of one or more scopes.

Here is the call graph for this function:

◆ clean()

QString Import_Rose::clean ( const QString &  s)

Return the given string without surrounding quotation marks. Also remove a possible prefix "Logical View::", it is not modeled in Umbrello.

◆ collectVerbatimText()

QString Import_Rose::collectVerbatimText ( QTextStream &  stream)
Here is the call graph for this function:

◆ diagramType()

Uml::DiagramType::Enum Import_Rose::diagramType ( QString  objType)

◆ extractImmediateValues()

QString Import_Rose::extractImmediateValues ( QStringList &  l)

Extract immediate values out of `l'. Examples of immediate value lists: number list: (123, 456) string list: ("SomeText" 888) Any enclosing parentheses are removed. All extracted items are also removed from `l'. For the example given above the following is returned: "123 456" or "\"SomeText\" 888"

Here is the call graph for this function:

◆ extractValue()

QString Import_Rose::extractValue ( QStringList &  l,
QTextStream &  stream 
)

Extract the stripped down value from a (value ...) element. Example: for the input (value Text "This is some text") the following is extracted: "This is some text" Extracted elements and syntactic sugar of the value element are removed from the input list. The stream is passed into this method because it may be necessary to read new lines - in the case of verbatim text. The format of verbatim text in petal files is as follows:

(value Text |This is the first line of verbatim text. |This is another line of verbatim text. ) (The '|' character is supposed to be in the first column of the line) In this case the two lines are extracted without the leading '|'. The line ending '
' of each line is preserved.

Here is the call graph for this function:

◆ fetchDouble()

qreal Import_Rose::fetchDouble ( const PetalNode node,
const QString &  attribute,
bool  applyRose2Qt = true 
)

Extract a double attribute from a petal node.

Here is the call graph for this function:

◆ fetchInt()

qreal Import_Rose::fetchInt ( const PetalNode node,
const QString &  attribute,
int  defaultValue = 0 
)

Extract an int attribute from a petal node.

Here is the call graph for this function:

◆ fetchLocation()

QPointF Import_Rose::fetchLocation ( const PetalNode node,
qreal  width,
qreal  height 
)

Extract the location attribute from a petal node. The extracted X,Y coordinates will be adjusted by the factor Rose2Qt unless width and/or height are given as 0.

Here is the call graph for this function:

◆ handleAssocView()

void Import_Rose::handleAssocView ( PetalNode attr,
const PetalNode::NameValueList parentAttrs,
Uml::AssociationType::Enum  assocType,
UMLView view,
UMLObject umlAssoc = 0 
)
Here is the call graph for this function:

◆ handleControlledUnit()

UMLPackage * Import_Rose::handleControlledUnit ( PetalNode node,
const QString &  name,
Uml::ID::Type  id,
UMLPackage parentPkg 
)

Handle a controlled unit.

Parameters
nodePointer to the PetalNode which may contain a controlled unit
nameName of the current node
idQUID of the current node
parentPkgPointer to the current parent UMLPackage or UMLFolder.
Returns
Pointer to UMLFolder created for controlled unit on success; NULL on error.
Here is the call graph for this function:

◆ importView()

bool Import_Rose::importView ( PetalNode root,
UMLPackage parent,
const QString &  rootName,
const QString &  modelsName,
const QString &  firstNodeName,
const QString &  presentationsName 
)

Auxiliary function for UseCase/Component/Deployment view import

Here is the call graph for this function:

◆ isImmediateValue()

bool Import_Rose::isImmediateValue ( QString  s)

Immediate values are numbers or quoted strings.

Returns
True if the given text is a natural or negative number or a quoted string.
Here is the call graph for this function:

◆ loadFromMDL()

UMLPackage * Import_Rose::loadFromMDL ( QFile &  file,
UMLPackage parentPkg 
)

Parse a file into the PetalNode internal tree representation and then create Umbrello objects by traversing the tree.

Returns
In case of error: NULL In case of success with non NULL parentPkg: pointer to UMLPackage created for controlled unit In case of success with NULL parentPkg: pointer to root folder of Logical View
Here is the call graph for this function:

◆ loc()

QString Import_Rose::loc ( )

Auxiliary function for diagnostics: Return current location.

Here is the call graph for this function:

◆ mdlPath()

QString Import_Rose::mdlPath ( )
Here is the call graph for this function:

◆ methodName()

void Import_Rose::methodName ( const QString &  m)
Here is the call graph for this function:

◆ petalTree2Uml()

UMLPackage * Import_Rose::petalTree2Uml ( PetalNode root,
UMLPackage parentPkg 
)

Auxiliary method for loadFromMDL() loading of controlled unit. Is kept in a separate file to reflect the fact that it is not coupled with the parser (other than by the PetalNode.)

Parameters
rootthe root of the tree
parentPkgthe owning package within which objects are created
Returns
pointer to the newly created UMLPackage on success, NULL on error
Here is the call graph for this function:

◆ quid()

Uml::ID::Type Import_Rose::quid ( const PetalNode node)

Extract the quid attribute from a petal node and return it as a Uml::ID::Type.

Here is the call graph for this function:

◆ quidu()

QString Import_Rose::quidu ( const PetalNode node)

Extract the quidu attribute from a petal node.

Here is the call graph for this function:

◆ readAttributes()

PetalNode * Import_Rose::readAttributes ( QStringList  initialArgs,
QTextStream &  stream 
)

Read attributes of a node.

Parameters
initialArgsTokens on the line of the opening "(" of the node but with leading whitespace and the opening "(" removed.
streamThe QTextStream from which to read following lines.
Returns
Pointer to the created PetalNode or NULL on error.
Here is the call graph for this function:

◆ scan()

QStringList Import_Rose::scan ( const QString &  lin)

Split a line into lexemes.

Here is the call graph for this function:

◆ shift()

QString Import_Rose::shift ( QStringList &  l)

Emulate perl shift().

Here is the call graph for this function:

◆ transferVisibility()

void Import_Rose::transferVisibility ( const PetalNode from,
UMLObject to 
)

Transfer the Rose attribute "exportControl" to the Umbrello object given.

Parameters
fromPointer to PetalNode from which to read the "exportControl" attribute
toPointer to UMLObject in which to set the Uml::Visibility
Here is the call graph for this function:

◆ typeToCreate()

UMLObject::ObjectType Import_Rose::typeToCreate ( const QString &  name)

Determine the model type corresponding to a name. If the given name consists only of letters, digits, underscores, and scope separators then return ot_Class, else return ot_Datatype.

◆ umbrellify()

bool Import_Rose::umbrellify ( PetalNode node,
UMLPackage parentPkg 
)

Create an Umbrello object from a PetalNode.

Returns
True for success. Given a PetalNode for which the mapping to Umbrello is not yet implemented umbrellify() is a no-op but also returns true.

Variable Documentation

◆ dirPrefix

QString Import_Rose::dirPrefix

Directory prefix of .mdl file is buffered for possibly finding .cat/.sub controlled units (if no path is given at their definition.)

◆ g_methodName

QString Import_Rose::g_methodName

◆ linum

uint Import_Rose::linum

◆ nClosures

uint Import_Rose::nClosures

◆ progLang

Set language if encountered in file. The last language encountered wins.

◆ Rose2Qt

const qreal Import_Rose::Rose2Qt = 0.5

The Rose diagram coordinate system is roughly twice the scale of Qt. I.e. when going from Rose diagram-object location/width/height to Qt, we need to shrink everything. The exact factor can be configured here.

◆ viewTagToWidget

ViewTagToWidget_Map Import_Rose::viewTagToWidget