diff --git a/app/org/omg/sysml/lifecycle/impl/package-info.java b/app/org/omg/sysml/lifecycle/impl/package-info.java
index 85961cb0..5d5f51d6 100644
--- a/app/org/omg/sysml/lifecycle/impl/package-info.java
+++ b/app/org/omg/sysml/lifecycle/impl/package-info.java
@@ -143,6 +143,7 @@
@MetaValue(value = "PortUsage", targetEntity = PortUsageImpl.class),
@MetaValue(value = "PortioningFeature", targetEntity = PortioningFeatureImpl.class),
@MetaValue(value = "Predicate", targetEntity = PredicateImpl.class),
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
@MetaValue(value = "Redefinition", targetEntity = RedefinitionImpl.class),
@MetaValue(value = "ReferenceUsage", targetEntity = ReferenceUsageImpl.class),
@MetaValue(value = "Relationship", targetEntity = RelationshipImpl.class),
diff --git a/app/org/omg/sysml/metamodel/PrefixComment.java b/app/org/omg/sysml/metamodel/PrefixComment.java
new file mode 100644
index 00000000..b4419a6c
--- /dev/null
+++ b/app/org/omg/sysml/metamodel/PrefixComment.java
@@ -0,0 +1,31 @@
+/*
+ * SysML v2 REST/HTTP Pilot Implementation
+ * Copyright (C) 2020 InterCAX LLC
+ * Copyright (C) 2020 California Institute of Technology ("Caltech")
+ * Copyright (C) 2021-2022 Twingineer LLC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * @license LGPL-3.0-or-later
+ */
+
+package org.omg.sysml.metamodel;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Set;
+
+public interface PrefixComment extends Comment, SysMLType {
+
+}
\ No newline at end of file
diff --git a/app/org/omg/sysml/metamodel/impl/FeatureValueImpl.java b/app/org/omg/sysml/metamodel/impl/FeatureValueImpl.java
index cfabc21f..bd30596d 100644
--- a/app/org/omg/sysml/metamodel/impl/FeatureValueImpl.java
+++ b/app/org/omg/sysml/metamodel/impl/FeatureValueImpl.java
@@ -155,11 +155,13 @@ public void setElementId(java.util.UUID elementId) {
+ // @info.archinnov.achilles.annotations.Transient
// @info.archinnov.achilles.annotations.Column("featureWithValue")
private Feature featureWithValue;
@JsonGetter
@JsonSerialize(using = DataSerializer.class)
+ // @javax.persistence.Transient
@Any(metaDef = "FeatureMetaDef", metaColumn = @javax.persistence.Column(name = "featureWithValue_type"), fetch = FetchType.LAZY)
@JoinColumn(name = "featureWithValue_id", table = "FeatureValue")
public Feature getFeatureWithValue() {
diff --git a/app/org/omg/sysml/metamodel/impl/PrefixCommentImpl.java b/app/org/omg/sysml/metamodel/impl/PrefixCommentImpl.java
new file mode 100644
index 00000000..b08d599f
--- /dev/null
+++ b/app/org/omg/sysml/metamodel/impl/PrefixCommentImpl.java
@@ -0,0 +1,482 @@
+/*
+ * SysML v2 REST/HTTP Pilot Implementation
+ * Copyright (C) 2020 InterCAX LLC
+ * Copyright (C) 2020 California Institute of Technology ("Caltech")
+ * Copyright (C) 2021-2022 Twingineer LLC
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program. If not, see .
+ *
+ * @license LGPL-3.0-or-later
+ */
+
+package org.omg.sysml.metamodel.impl;
+
+import org.omg.sysml.metamodel.*;
+
+import org.omg.sysml.metamodel.Package;
+import org.omg.sysml.metamodel.Class;
+
+import jackson.DataSerializer;
+import jackson.DataDeserializer;
+
+import com.fasterxml.jackson.annotation.*;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+
+import org.hibernate.annotations.Any;
+import org.hibernate.annotations.ManyToAny;
+import org.hibernate.annotations.FetchMode;
+
+// import info.archinnov.achilles.annotations.UDT;
+
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import javax.persistence.EnumType;
+import javax.persistence.ElementCollection;
+import javax.persistence.Inheritance;
+import javax.persistence.InheritanceType;
+import javax.persistence.PrimaryKeyJoinColumn;
+import javax.persistence.JoinColumn;
+import javax.persistence.JoinTable;
+import javax.persistence.Lob;
+import javax.persistence.FetchType;
+import javax.persistence.DiscriminatorValue;
+import javax.persistence.Table;
+import javax.persistence.SecondaryTable;
+import javax.persistence.CollectionTable;
+
+import java.util.Collection;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Set;
+import java.util.HashSet;
+
+@Entity(name = "PrefixCommentImpl")
+@SecondaryTable(name = "PrefixComment")
+@org.hibernate.annotations.Table(appliesTo = "PrefixComment", fetch = FetchMode.SELECT, optional = false)
+// @info.archinnov.achilles.annotations.Table(table = "PrefixComment")
+@DiscriminatorValue(value = "PrefixComment")
+@JsonTypeName(value = "PrefixComment")
+@JsonTypeInfo(use = JsonTypeInfo.Id.NAME)
+public class PrefixCommentImpl extends SysMLTypeImpl implements PrefixComment {
+ // @info.archinnov.achilles.annotations.Column("aliasIds")
+ private List aliasIds;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ @ElementCollection(targetClass = String.class)
+ @CollectionTable(name = "PrefixComment_aliasIds",
+ joinColumns = @JoinColumn(name = "PrefixComment_id"))
+ public List getAliasIds() {
+ if (aliasIds == null) {
+ aliasIds = new ArrayList<>();
+ }
+ return aliasIds;
+ }
+
+ @JsonSetter
+ public void setAliasIds(List aliasIds) {
+ this.aliasIds = aliasIds;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("annotatedElement")
+ private List annotatedElement;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ // @javax.persistence.Transient
+ @ManyToAny(metaDef = "ElementMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_annotatedElement",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getAnnotatedElement() {
+ if (annotatedElement == null) {
+ annotatedElement = new ArrayList<>();
+ }
+ return annotatedElement;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = ElementImpl.class)
+ public void setAnnotatedElement(List annotatedElement) {
+ this.annotatedElement = annotatedElement;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("annotation")
+ private List annotation;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ @ManyToAny(metaDef = "AnnotationMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_annotation",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getAnnotation() {
+ if (annotation == null) {
+ annotation = new ArrayList<>();
+ }
+ return annotation;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = AnnotationImpl.class)
+ public void setAnnotation(List annotation) {
+ this.annotation = annotation;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("body")
+ private String body;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ @javax.persistence.Column(name = "body", table = "PrefixComment")
+ public String getBody() {
+ return body;
+ }
+
+ @JsonSetter
+ public void setBody(String body) {
+ this.body = body;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("documentation")
+ private List documentation;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ // @javax.persistence.Transient
+ @ManyToAny(metaDef = "DocumentationMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_documentation",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getDocumentation() {
+ if (documentation == null) {
+ documentation = new ArrayList<>();
+ }
+ return documentation;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = DocumentationImpl.class)
+ public void setDocumentation(List documentation) {
+ this.documentation = documentation;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("effectiveName")
+ private String effectiveName;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ // @javax.persistence.Transient
+ @javax.persistence.Column(name = "effectiveName", table = "PrefixComment")
+ public String getEffectiveName() {
+ return effectiveName;
+ }
+
+ @JsonSetter
+ public void setEffectiveName(String effectiveName) {
+ this.effectiveName = effectiveName;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("elementId")
+ private java.util.UUID elementId;
+
+ @JsonGetter
+ @javax.persistence.Column(name = "elementId", table = "PrefixComment")
+ public java.util.UUID getElementId() {
+ return elementId;
+ }
+
+ @JsonSetter
+ public void setElementId(java.util.UUID elementId) {
+ this.elementId = elementId;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("locale")
+ private String locale;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ @javax.persistence.Column(name = "locale", table = "PrefixComment")
+ public String getLocale() {
+ return locale;
+ }
+
+ @JsonSetter
+ public void setLocale(String locale) {
+ this.locale = locale;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("name")
+ private String name;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ @javax.persistence.Column(name = "name", table = "PrefixComment")
+ public String getName() {
+ return name;
+ }
+
+ @JsonSetter
+ public void setName(String name) {
+ this.name = name;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("ownedAnnotation")
+ private List ownedAnnotation;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ // @javax.persistence.Transient
+ @ManyToAny(metaDef = "AnnotationMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_ownedAnnotation",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getOwnedAnnotation() {
+ if (ownedAnnotation == null) {
+ ownedAnnotation = new ArrayList<>();
+ }
+ return ownedAnnotation;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = AnnotationImpl.class)
+ public void setOwnedAnnotation(List ownedAnnotation) {
+ this.ownedAnnotation = ownedAnnotation;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("ownedElement")
+ private List ownedElement;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ // @javax.persistence.Transient
+ @ManyToAny(metaDef = "ElementMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_ownedElement",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getOwnedElement() {
+ if (ownedElement == null) {
+ ownedElement = new ArrayList<>();
+ }
+ return ownedElement;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = ElementImpl.class)
+ public void setOwnedElement(List ownedElement) {
+ this.ownedElement = ownedElement;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("ownedRelationship")
+ private List ownedRelationship;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ @ManyToAny(metaDef = "RelationshipMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_ownedRelationship",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getOwnedRelationship() {
+ if (ownedRelationship == null) {
+ ownedRelationship = new ArrayList<>();
+ }
+ return ownedRelationship;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = RelationshipImpl.class)
+ public void setOwnedRelationship(List ownedRelationship) {
+ this.ownedRelationship = ownedRelationship;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("owner")
+ private Element owner;
+
+ @JsonGetter
+ @JsonSerialize(using = DataSerializer.class)
+ // @javax.persistence.Transient
+ @Any(metaDef = "ElementMetaDef", metaColumn = @javax.persistence.Column(name = "owner_type"), fetch = FetchType.LAZY)
+ @JoinColumn(name = "owner_id", table = "PrefixComment")
+ public Element getOwner() {
+ return owner;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(using = DataDeserializer.class, as = ElementImpl.class)
+ public void setOwner(Element owner) {
+ this.owner = owner;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("owningMembership")
+ private OwningMembership owningMembership;
+
+ @JsonGetter
+ @JsonSerialize(using = DataSerializer.class)
+ @Any(metaDef = "OwningMembershipMetaDef", metaColumn = @javax.persistence.Column(name = "owningMembership_type"), fetch = FetchType.LAZY)
+ @JoinColumn(name = "owningMembership_id", table = "PrefixComment")
+ public OwningMembership getOwningMembership() {
+ return owningMembership;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(using = DataDeserializer.class, as = OwningMembershipImpl.class)
+ public void setOwningMembership(OwningMembership owningMembership) {
+ this.owningMembership = owningMembership;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("owningNamespace")
+ private Namespace owningNamespace;
+
+ @JsonGetter
+ @JsonSerialize(using = DataSerializer.class)
+ // @javax.persistence.Transient
+ @Any(metaDef = "NamespaceMetaDef", metaColumn = @javax.persistence.Column(name = "owningNamespace_type"), fetch = FetchType.LAZY)
+ @JoinColumn(name = "owningNamespace_id", table = "PrefixComment")
+ public Namespace getOwningNamespace() {
+ return owningNamespace;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(using = DataDeserializer.class, as = NamespaceImpl.class)
+ public void setOwningNamespace(Namespace owningNamespace) {
+ this.owningNamespace = owningNamespace;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("owningRelationship")
+ private Relationship owningRelationship;
+
+ @JsonGetter
+ @JsonSerialize(using = DataSerializer.class)
+ @Any(metaDef = "RelationshipMetaDef", metaColumn = @javax.persistence.Column(name = "owningRelationship_type"), fetch = FetchType.LAZY)
+ @JoinColumn(name = "owningRelationship_id", table = "PrefixComment")
+ public Relationship getOwningRelationship() {
+ return owningRelationship;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(using = DataDeserializer.class, as = RelationshipImpl.class)
+ public void setOwningRelationship(Relationship owningRelationship) {
+ this.owningRelationship = owningRelationship;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("qualifiedName")
+ private String qualifiedName;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ // @javax.persistence.Transient
+ @javax.persistence.Column(name = "qualifiedName", table = "PrefixComment")
+ public String getQualifiedName() {
+ return qualifiedName;
+ }
+
+ @JsonSetter
+ public void setQualifiedName(String qualifiedName) {
+ this.qualifiedName = qualifiedName;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Column("shortName")
+ private String shortName;
+
+ @JsonGetter
+ @Lob
+ @org.hibernate.annotations.Type(type = "org.hibernate.type.TextType")
+ @javax.persistence.Column(name = "shortName", table = "PrefixComment")
+ public String getShortName() {
+ return shortName;
+ }
+
+ @JsonSetter
+ public void setShortName(String shortName) {
+ this.shortName = shortName;
+ }
+
+
+
+ // @info.archinnov.achilles.annotations.Transient
+ // @info.archinnov.achilles.annotations.Column("textualRepresentation")
+ private List textualRepresentation;
+
+ @JsonGetter
+ @JsonSerialize(contentUsing = DataSerializer.class)
+ // @javax.persistence.Transient
+ @ManyToAny(metaDef = "TextualRepresentationMetaDef", metaColumn = @javax.persistence.Column(name = "attribute_type"), fetch = FetchType.LAZY)
+ @JoinTable(name = "PrefixComment_textualRepresentation",
+ joinColumns = @JoinColumn(name = "class_id"),
+ inverseJoinColumns = @JoinColumn(name = "attribute_id"))
+ public List getTextualRepresentation() {
+ if (textualRepresentation == null) {
+ textualRepresentation = new ArrayList<>();
+ }
+ return textualRepresentation;
+ }
+
+ @JsonSetter
+ @JsonDeserialize(contentUsing = DataDeserializer.class, contentAs = TextualRepresentationImpl.class)
+ public void setTextualRepresentation(List textualRepresentation) {
+ this.textualRepresentation = textualRepresentation;
+ }
+
+
+
+}
diff --git a/app/org/omg/sysml/metamodel/impl/package-info.java b/app/org/omg/sysml/metamodel/impl/package-info.java
index 2f56e8f1..058f7714 100644
--- a/app/org/omg/sysml/metamodel/impl/package-info.java
+++ b/app/org/omg/sysml/metamodel/impl/package-info.java
@@ -139,6 +139,7 @@
@MetaValue(value = "PortUsage", targetEntity = PortUsageImpl.class),
@MetaValue(value = "PortioningFeature", targetEntity = PortioningFeatureImpl.class),
@MetaValue(value = "Predicate", targetEntity = PredicateImpl.class),
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
@MetaValue(value = "Redefinition", targetEntity = RedefinitionImpl.class),
@MetaValue(value = "ReferenceUsage", targetEntity = ReferenceUsageImpl.class),
@MetaValue(value = "Relationship", targetEntity = RelationshipImpl.class),
@@ -255,6 +256,7 @@
@MetaValue(value = "Documentation", targetEntity = DocumentationImpl.class),
@MetaValue(value = "MetadataFeature", targetEntity = MetadataFeatureImpl.class),
@MetaValue(value = "MetadataUsage", targetEntity = MetadataUsageImpl.class),
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
@MetaValue(value = "TextualRepresentation", targetEntity = TextualRepresentationImpl.class),
}),
@AnyMetaDef(name = "AnnotationMetaDef", metaType = "string", idType = "java.util.UUID",
@@ -448,6 +450,7 @@
metaValues = {
@MetaValue(value = "Comment", targetEntity = CommentImpl.class),
@MetaValue(value = "Documentation", targetEntity = DocumentationImpl.class),
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
}),
@AnyMetaDef(name = "ConcernDefinitionMetaDef", metaType = "string", idType = "java.util.UUID",
metaValues = {
@@ -703,6 +706,7 @@
@MetaValue(value = "PortUsage", targetEntity = PortUsageImpl.class),
@MetaValue(value = "PortioningFeature", targetEntity = PortioningFeatureImpl.class),
@MetaValue(value = "Predicate", targetEntity = PredicateImpl.class),
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
@MetaValue(value = "Redefinition", targetEntity = RedefinitionImpl.class),
@MetaValue(value = "ReferenceUsage", targetEntity = ReferenceUsageImpl.class),
@MetaValue(value = "Relationship", targetEntity = RelationshipImpl.class),
@@ -1449,6 +1453,10 @@
@MetaValue(value = "RequirementDefinition", targetEntity = RequirementDefinitionImpl.class),
@MetaValue(value = "ViewpointDefinition", targetEntity = ViewpointDefinitionImpl.class),
}),
+ @AnyMetaDef(name = "PrefixCommentMetaDef", metaType = "string", idType = "java.util.UUID",
+ metaValues = {
+ @MetaValue(value = "PrefixComment", targetEntity = PrefixCommentImpl.class),
+ }),
@AnyMetaDef(name = "RedefinitionMetaDef", metaType = "string", idType = "java.util.UUID",
metaValues = {
@MetaValue(value = "Redefinition", targetEntity = RedefinitionImpl.class),
diff --git a/build.sbt b/build.sbt
index 96957585..2da6cf6d 100644
--- a/build.sbt
+++ b/build.sbt
@@ -1,7 +1,7 @@
name := """SysML-v2-API-Services"""
organization := "org.omg"
-version := "2022-06"
+version := "2022-07"
javacOptions ++= Seq("-source", "11", "-target", "11", "-Xlint")
diff --git a/conf/META-INF/persistence.xml b/conf/META-INF/persistence.xml
index ea69aa41..238eaa25 100644
--- a/conf/META-INF/persistence.xml
+++ b/conf/META-INF/persistence.xml
@@ -141,6 +141,7 @@
org.omg.sysml.metamodel.impl.PortioningFeatureImpl
org.omg.sysml.metamodel.impl.PortUsageImpl
org.omg.sysml.metamodel.impl.PredicateImpl
+ org.omg.sysml.metamodel.impl.PrefixCommentImpl
org.omg.sysml.metamodel.impl.RedefinitionImpl
org.omg.sysml.metamodel.impl.ReferenceUsageImpl
org.omg.sysml.metamodel.impl.RelationshipImpl
diff --git a/generated/org/omg/sysml/metamodel/impl/PrefixCommentImpl_.java b/generated/org/omg/sysml/metamodel/impl/PrefixCommentImpl_.java
new file mode 100644
index 00000000..8cc754d8
--- /dev/null
+++ b/generated/org/omg/sysml/metamodel/impl/PrefixCommentImpl_.java
@@ -0,0 +1,51 @@
+package org.omg.sysml.metamodel.impl;
+
+import java.util.UUID;
+import javax.annotation.processing.Generated;
+import javax.persistence.metamodel.ListAttribute;
+import javax.persistence.metamodel.SingularAttribute;
+import javax.persistence.metamodel.StaticMetamodel;
+import org.omg.sysml.metamodel.Annotation;
+import org.omg.sysml.metamodel.Documentation;
+import org.omg.sysml.metamodel.Element;
+import org.omg.sysml.metamodel.Relationship;
+import org.omg.sysml.metamodel.TextualRepresentation;
+
+@Generated(value = "org.hibernate.jpamodelgen.JPAMetaModelEntityProcessor")
+@StaticMetamodel(PrefixCommentImpl.class)
+public abstract class PrefixCommentImpl_ extends org.omg.sysml.lifecycle.impl.DataImpl_ {
+
+ public static volatile ListAttribute annotation;
+ public static volatile SingularAttribute elementId;
+ public static volatile ListAttribute textualRepresentation;
+ public static volatile ListAttribute ownedAnnotation;
+ public static volatile ListAttribute ownedElement;
+ public static volatile ListAttribute aliasIds;
+ public static volatile ListAttribute ownedRelationship;
+ public static volatile SingularAttribute qualifiedName;
+ public static volatile ListAttribute documentation;
+ public static volatile ListAttribute annotatedElement;
+ public static volatile SingularAttribute body;
+ public static volatile SingularAttribute locale;
+ public static volatile SingularAttribute name;
+ public static volatile SingularAttribute shortName;
+ public static volatile SingularAttribute effectiveName;
+
+ public static final String ANNOTATION = "annotation";
+ public static final String ELEMENT_ID = "elementId";
+ public static final String TEXTUAL_REPRESENTATION = "textualRepresentation";
+ public static final String OWNED_ANNOTATION = "ownedAnnotation";
+ public static final String OWNED_ELEMENT = "ownedElement";
+ public static final String ALIAS_IDS = "aliasIds";
+ public static final String OWNED_RELATIONSHIP = "ownedRelationship";
+ public static final String QUALIFIED_NAME = "qualifiedName";
+ public static final String DOCUMENTATION = "documentation";
+ public static final String ANNOTATED_ELEMENT = "annotatedElement";
+ public static final String BODY = "body";
+ public static final String LOCALE = "locale";
+ public static final String NAME = "name";
+ public static final String SHORT_NAME = "shortName";
+ public static final String EFFECTIVE_NAME = "effectiveName";
+
+}
+
diff --git a/public/jsonld/metamodel/PrefixComment.jsonld b/public/jsonld/metamodel/PrefixComment.jsonld
new file mode 100644
index 00000000..fadd6cf0
--- /dev/null
+++ b/public/jsonld/metamodel/PrefixComment.jsonld
@@ -0,0 +1,29 @@
+{
+ "@context": {
+ "@vocab": "http://omg.org/ns/sysml/v2/metamodel#",
+ "sysml": "http://omg.org/ns/sysml/v2/metamodel#",
+ "dcterms": "http://purl.org/dc/terms/",
+ "xsd": "http://www.w3.org/2001/XMLSchema#",
+
+ "aliasIds": {"@type": "xsd:string"},
+ "annotatedElement": {"@type": "@id"},
+ "annotation": {"@type": "@id"},
+ "body": {"@type": "xsd:string"},
+ "documentation": {"@type": "@id"},
+ "effectiveName": {"@type": "xsd:string"},
+ "elementId": {"@type": "dcterms:identifier"},
+ "locale": {"@type": "xsd:string"},
+ "name": {"@type": "xsd:string"},
+ "ownedAnnotation": {"@type": "@id"},
+ "ownedElement": {"@type": "@id"},
+ "ownedRelationship": {"@type": "@id"},
+ "owner": {"@type": "@id"},
+ "owningMembership": {"@type": "@id"},
+ "owningNamespace": {"@type": "@id"},
+ "owningRelationship": {"@type": "@id"},
+ "qualifiedName": {"@type": "xsd:string"},
+ "shortName": {"@type": "xsd:string"},
+ "textualRepresentation": {"@type": "@id"}
+
+ }
+}
\ No newline at end of file