Skip to content

Commit 93249d2

Browse files
committed
* VDefault (isEmptySubject): Moved from VCompartment.
(isEmptyObjective, isEmpty): Added (addShorthandRelation): Use isEmpty(). * VCompartment (caseObjectiveMembership): Do not render empty objectives. * VTree (caseObjectiveMembership): Likewise
1 parent 6029184 commit 93249d2

3 files changed

Lines changed: 33 additions & 10 deletions

File tree

org.omg.sysml.plantuml/src/org/omg/sysml/plantuml/VCompartment.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@
6767
import org.omg.sysml.lang.sysml.SuccessionFlow;
6868
import org.omg.sysml.lang.sysml.TransitionUsage;
6969
import org.omg.sysml.lang.sysml.Type;
70-
import org.omg.sysml.lang.sysml.Usage;
7170
import org.omg.sysml.lang.sysml.VariantMembership;
7271
import org.omg.sysml.util.ConnectorUtil;
7372
import org.omg.sysml.util.TypeUtil;
@@ -312,7 +311,7 @@ public String caseVariantMembership(VariantMembership vm) {
312311

313312
@Override
314313
public String caseObjectiveMembership(ObjectiveMembership om) {
315-
//rec(om, om, true);
314+
if (isEmptyObjective(om)) return "";
316315
recOrAddOwningMembership(om);
317316
return "";
318317
}
@@ -329,12 +328,6 @@ public String caseStakeholderMembership(StakeholderMembership sm) {
329328
return "";
330329
}
331330

332-
private boolean isEmptySubject(SubjectMembership sm) {
333-
Usage u = sm.getOwnedSubjectParameter();
334-
if (!"subj".equals(u.getName())) return false;
335-
return u.getOwnedRelationship().isEmpty();
336-
}
337-
338331
@Override
339332
public String caseSubjectMembership(SubjectMembership sm) {
340333
if (isEmptySubject(sm)) return "";

org.omg.sysml.plantuml/src/org/omg/sysml/plantuml/VDefault.java

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,12 +54,14 @@
5454
import org.omg.sysml.lang.sysml.Membership;
5555
import org.omg.sysml.lang.sysml.MetadataFeature;
5656
import org.omg.sysml.lang.sysml.Namespace;
57+
import org.omg.sysml.lang.sysml.ObjectiveMembership;
5758
import org.omg.sysml.lang.sysml.OwningMembership;
5859
import org.omg.sysml.lang.sysml.PerformActionUsage;
5960
import org.omg.sysml.lang.sysml.Redefinition;
6061
import org.omg.sysml.lang.sysml.ReferenceSubsetting;
6162
import org.omg.sysml.lang.sysml.Relationship;
6263
import org.omg.sysml.lang.sysml.Specialization;
64+
import org.omg.sysml.lang.sysml.SubjectMembership;
6365
import org.omg.sysml.lang.sysml.Subsetting;
6466
import org.omg.sysml.lang.sysml.Type;
6567
import org.omg.sysml.lang.sysml.Usage;
@@ -300,15 +302,42 @@ protected Relationship findBindingLikeRel(Feature f) {
300302
return ret;
301303
}
302304

305+
protected static boolean isEmptySubject(SubjectMembership sm) {
306+
Usage u = sm.getOwnedSubjectParameter();
307+
if (!"subj".equals(u.getName())) return false;
308+
return u.getOwnedRelationship().isEmpty();
309+
}
310+
311+
protected static boolean isEmptyObjective(ObjectiveMembership om) {
312+
Usage u = om.getOwnedObjectiveRequirement();
313+
if (!"obj".equals(u.getName())) return false;
314+
return isEmpty(u);
315+
}
316+
317+
private static boolean isEmpty(Feature f) {
318+
for (Membership ms: toOwnedMembershipArray(f)) {
319+
if (!(ms instanceof OwningMembership)) continue;
320+
if (ms instanceof SubjectMembership) {
321+
if (isEmptySubject((SubjectMembership) ms)) continue;
322+
return false;
323+
}
324+
if (ms instanceof ObjectiveMembership) {
325+
if (isEmptyObjective((ObjectiveMembership) ms)) continue;
326+
return false;
327+
}
328+
return false;
329+
}
330+
return true;
331+
}
332+
303333
// Shorthand notation
304334
private boolean addShorthandRelation(Usage u, String title) {
305335
if (u.getDeclaredName() != null) return false;
306336
if (u.getDeclaredShortName() != null) return false;
307337
ReferenceSubsetting rs = u.getOwnedReferenceSubsetting();
308338
if (rs == null) return false;
309339

310-
List<Membership> mss = u.getOwnedMembership();
311-
if (!mss.isEmpty()) return false;
340+
if (!isEmpty(u)) return false;
312341

313342
if (isReferred(u)) return false;
314343

org.omg.sysml.plantuml/src/org/omg/sysml/plantuml/VTree.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,7 @@ public String caseVariantMembership(VariantMembership vm) {
131131

132132
@Override
133133
public String caseObjectiveMembership(ObjectiveMembership om) {
134+
if (isEmptyObjective(om)) return "";
134135
RequirementUsage ru = om.getOwnedObjectiveRequirement();
135136
addRel(ru, om, "<<objective>>");
136137
addReq("comp usage ", ru);

0 commit comments

Comments
 (0)