Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MEF Element Attribute Inheritance #231

Closed
rakhimov opened this issue Nov 5, 2017 · 0 comments
Closed

MEF Element Attribute Inheritance #231

rakhimov opened this issue Nov 5, 2017 · 0 comments
Labels
Milestone

Comments

@rakhimov
Copy link
Owner

rakhimov commented Nov 5, 2017

The MEF element attributes carry extra data about elements.
Moreover, attributes (data) are inherited from containers
(fault-trees, event-trees, components, model)
by elements defined within those containers.
The element definitions can also override attributes.

The MEF attribute inheritance requires
keeping track of ancestor-containers to descendant-elements relations.
If a container's attribute changes,
its descendant-elements' attributes must be updated accordingly (a la prototype).

Required by #193

rakhimov added a commit that referenced this issue Jan 23, 2018
rakhimov added a commit that referenced this issue Jan 23, 2018
PDAG does not directly support this rare connective for analysis,
but it rewrites the MEF connective into PDAG connectives.

Issue #231
rakhimov added a commit that referenced this issue Jan 23, 2018
These connectives are not intuitive with more than 2 args.
More reasoning: open-psa/mef#59

Issue #231
rakhimov added a commit that referenced this issue Feb 11, 2018
This set provides more convenient interface (map-like)
than std::vector.

Issue #231
rakhimov added a commit that referenced this issue Feb 11, 2018
This is needed for duplicate attribute detection.

Issue #231
rakhimov added a commit that referenced this issue Feb 11, 2018
Even through Attribute carries arbitrary data,
it is not a dumb data.
The name and value are required to be non-empty.

Issue #231
rakhimov added a commit that referenced this issue Feb 11, 2018
The interfaces are simplified to reflect the attribute inheritance.
Attribute removal and query return optional (or nullptr)
for non-existent/reachable attributes.

Issue #231
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant