| 1 |
comment |
|---|
| 2 |
vim:sw=4:et:syntax=python |
|---|
| 3 |
|
|---|
| 4 |
This is a file with custom definitions for Gaphors data model. |
|---|
| 5 |
|
|---|
| 6 |
Parts are separated by '%%' (no training spaces) on a line. |
|---|
| 7 |
Comment parts start with 'comment' on the line belowe the percentage |
|---|
| 8 |
symbols, 'override' is used to define a overridden variable. |
|---|
| 9 |
|
|---|
| 10 |
%% |
|---|
| 11 |
override Element |
|---|
| 12 |
from element import Element |
|---|
| 13 |
%% |
|---|
| 14 |
override Diagram |
|---|
| 15 |
from diagram import Diagram |
|---|
| 16 |
%% |
|---|
| 17 |
override MultiplicityElement.lower |
|---|
| 18 |
|
|---|
| 19 |
def _get(self): |
|---|
| 20 |
return self.lowerValue and self.lowerValue.value |
|---|
| 21 |
def _set(self, value): |
|---|
| 22 |
if not self.lowerValue: |
|---|
| 23 |
self.lowerValue = self._factory.create(LiteralString) |
|---|
| 24 |
self.lowerValue.value = value |
|---|
| 25 |
def _del(self): |
|---|
| 26 |
if self.lowerValue: |
|---|
| 27 |
del self.lowerValue.value |
|---|
| 28 |
|
|---|
| 29 |
MultiplicityElement.lower = property(_get, _set, _del) |
|---|
| 30 |
del _get, _set, _del |
|---|
| 31 |
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
|
|---|
| 37 |
|
|---|
| 38 |
%% |
|---|
| 39 |
override MultiplicityElement.upper |
|---|
| 40 |
|
|---|
| 41 |
def _get(self): |
|---|
| 42 |
return self.upperValue and self.upperValue.value |
|---|
| 43 |
def _set(self, value): |
|---|
| 44 |
if not self.upperValue: |
|---|
| 45 |
self.upperValue = self._factory.create(LiteralString) |
|---|
| 46 |
self.upperValue.value = value |
|---|
| 47 |
def _del(self): |
|---|
| 48 |
if self.upperValue: |
|---|
| 49 |
del self.upperValue.value |
|---|
| 50 |
|
|---|
| 51 |
MultiplicityElement.upper = property(_get, _set, _del) |
|---|
| 52 |
del _get, _set, _del |
|---|
| 53 |
%% |
|---|
| 54 |
override Classifier.inheritedMember |
|---|
| 55 |
Classifier.inheritedMember = derivedunion('inheritedMember', 0, '*') |
|---|
| 56 |
%% |
|---|
| 57 |
override Classifier.general |
|---|
| 58 |
Classifier.general = derivedunion('inheritedMember', 0, '*') |
|---|
| 59 |
%% |
|---|
| 60 |
override Namespace.importedMember |
|---|
| 61 |
Namespace.importedMember = derivedunion('importedMember', 0, '*') |
|---|
| 62 |
%% |
|---|
| 63 |
override Property.opposite |
|---|
| 64 |
|
|---|
| 65 |
def property_opposite(self): |
|---|
| 66 |
"""In the case where the property is one navigable end of a binary |
|---|
| 67 |
association with both ends navigable, this gives the other end. |
|---|
| 68 |
|
|---|
| 69 |
For Gaphor the property on the other end is returned regardless the |
|---|
| 70 |
navigability. |
|---|
| 71 |
""" |
|---|
| 72 |
|
|---|
| 73 |
|
|---|
| 74 |
|
|---|
| 75 |
|
|---|
| 76 |
|
|---|
| 77 |
if len(self.association.memberEnd) == 2: |
|---|
| 78 |
return self.association.memberEnd[0] is self \ |
|---|
| 79 |
and self.association.memberEnd[1] \ |
|---|
| 80 |
or self.association.memberEnd[0] |
|---|
| 81 |
return None |
|---|
| 82 |
|
|---|
| 83 |
Property.opposite = property(property_opposite, doc=property_opposite.__doc__) |
|---|
| 84 |
|
|---|
| 85 |
del property_opposite |
|---|
| 86 |
%% |
|---|
| 87 |
override Property.isComposite |
|---|
| 88 |
Property.isComposite = property(lambda self: self.aggregation == intern('composite')) |
|---|
| 89 |
%% |
|---|
| 90 |
override Constraint.context |
|---|
| 91 |
Constraint.context = derivedunion('context', 0, 1) |
|---|
| 92 |
%% |
|---|
| 93 |
override Association.endType |
|---|
| 94 |
Association.endType = derivedunion('endType', 1, '*') |
|---|
| 95 |
%% |
|---|
| 96 |
override Operation.type |
|---|
| 97 |
Operation.type = derivedunion('type', 0, 1) |
|---|
| 98 |
%% |
|---|
| 99 |
override Property.parse |
|---|
| 100 |
from umllex import parse_property |
|---|
| 101 |
Property.parse = parse_property |
|---|
| 102 |
del parse_property |
|---|
| 103 |
%% |
|---|
| 104 |
override Property.render |
|---|
| 105 |
from umllex import render_property |
|---|
| 106 |
Property.render = render_property |
|---|
| 107 |
del render_property |
|---|
| 108 |
%% |
|---|
| 109 |
override Operation.parse |
|---|
| 110 |
from umllex import parse_operation |
|---|
| 111 |
Operation.parse = parse_operation |
|---|
| 112 |
del parse_operation |
|---|
| 113 |
%% |
|---|
| 114 |
override Operation.render |
|---|
| 115 |
from umllex import render_operation |
|---|
| 116 |
Operation.render = render_operation |
|---|
| 117 |
del render_operation |
|---|