Skip to content

Support unparsing when behavior annex has resolution errors #2459

Description

@philip-alldredge

Update OSATE and the behavior annex plugin to support accessing and unparsing of any parsed behavior annex regardless of resolution issues. This is helpful for the graphical editor to allow editing behavior annex subclauses when there are resolution or legality errors.

Parsed annex sublause is null whenever a resolution error occurs.

The parsed annex subclause is set to null if there are any resolution errors. This behavior should be removed by removing the following lines from AnnexParserAgent

if (resolveErrReporter.getNumErrors() != 0) {
	setParsedAnnexSection.accept(null);
}

Unparsing fails in some cases

In some cases the behavior annex unparser fails and produces unexpected results. Given the following model:

package ba_unparse
public

	system top
	annex behavior_specification {**
		states
			s3 : state;
		transitions
            t1 : s1 -[]-> s2 {
              o1 := tmp + 1
            };
        **};
end top;
	
end ba_unparse;

Adding a new state and unparsing with the graphical editor and unparsing produces:

public

	system top
	annex behavior_specification {**
          states
            s3 : state;
            top_new_state : initial state;
          transitions
        **};
end top;
	
end ba_unparse;

The following message appears in the console of the development environment: aadlba unparsing failed for : DeclarativeBehaviorTransitionImpl

There may be other unparsing cases that are problematic but these are the ones we have experienced so far.
@RyanMcilnay please add comments with any other cases where unparsing fails. You'll need to make the change to AnnexParserAgent first.

Metadata

Metadata

Assignees

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions