UNPKG

@yellicode/elements

Version:

The meta model API for Yellicode - an extensible code generator.

809 lines (808 loc) 34.4 kB
/** * This code was generated by a tool. * * Changes to this file may cause incorrect behavior and will be lost if the code is regenerated. */ import * as elements from './interfaces'; export interface Deletable { /** * Returns true if the element is deleted. */ isDeleted?: boolean; /** * Returns true if either the element or one of its owners has been deleted. */ isOrphaned(): boolean; } export interface ClassProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; /** * Determines whether an object specified by this Class is active or not. If true, then the owning * Class is referred to as an active Class. If false, then such a Class is referred to as a passive * Class. */ isActive?: boolean; } export interface StereotypeProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; /** * Determines whether an object specified by this Class is active or not. If true, then the owning * Class is referred to as an active Class. If false, then such a Class is referred to as a passive * Class. */ isActive?: boolean; } export interface PropertyProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * Gets or set the sort order of the element if it is part of a collection. The value is 0 for elements * to which no particular ordering applies. Elements with a lower order come before elements with a * higher order. */ order?: number; /** * Specifies whether this Feature characterizes individual instances classified by the Classifier * (false) or the Classifier itself (true). */ isStatic?: boolean; /** * For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of * this MultiplicityElement are sequentially ordered. */ isOrdered?: boolean; /** * For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of * this MultiplicityElement are unique. */ isUnique?: boolean; /** * The type of the TypedElement. */ type?: elements.Type; /** * If isReadOnly is true, the StructuralFeature may not be written to after initialization. */ isReadOnly?: boolean; /** * */ aggregation?: elements.AggregationKind; /** * The Association of which this Property is a member, if any. */ association?: elements.Association; /** * Specifies whether the property is derived as the union of all of the Properties that are constrained * to subset it. */ isDerived?: boolean; /** * Specifies whether the property is derived as the union of all of the Properties that are constrained * to subset it. */ isDerivedUnion?: boolean; /** * True indicates this property can be used to uniquely identify an instance of the containing Class. */ isID?: boolean; /** * Returns true if the Property is owned by a classifier or is included in the NavigableOwnedEnds of an * association. */ isNavigable?: boolean; } export interface PackageProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Denotes where the namespace structure for your class model starts; all nested packages below a * namespace root will form the namespace hierarchy for contained types. */ isNamespaceRoot?: boolean; } export interface ProfileProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Denotes where the namespace structure for your class model starts; all nested packages below a * namespace root will form the namespace hierarchy for contained types. */ isNamespaceRoot?: boolean; } export interface DataTypeProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; } export interface PrimitiveTypeProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; } export interface ParameterProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * The type of the TypedElement. */ type?: elements.Type; /** * For a multivalued multiplicity, this attribute specifies whether the values in an instantiation of * this MultiplicityElement are sequentially ordered. */ isOrdered?: boolean; /** * For a multivalued multiplicity, this attributes specifies whether the values in an instantiation of * this MultiplicityElement are unique. */ isUnique?: boolean; /** * Gets or set the sort order of the element if it is part of a collection. The value is 0 for elements * to which no particular ordering applies. Elements with a lower order come before elements with a * higher order. */ order?: number; /** * */ direction?: elements.ParameterDirectionKind; /** * Tells whether an output parameter may emit a value to the exclusion of the other outputs. */ isException?: boolean; /** * Tells whether an input parameter may accept values while its behavior is executing, or whether an * output parameter may post values while the behavior is executing. */ isStream?: boolean; } export interface OperationProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * Gets or set the sort order of the element if it is part of a collection. The value is 0 for elements * to which no particular ordering applies. Elements with a lower order come before elements with a * higher order. */ order?: number; /** * Specifies whether this Feature characterizes individual instances classified by the Classifier * (false) or the Classifier itself (true). */ isStatic?: boolean; /** * If true, then the BehavioralFeature does not have an implementation, and one must be supplied by a * more specific Classifier. If false, the BehavioralFeature must have an implementation in the * Classifier or one must be inherited. */ isAbstract?: boolean; /** * Specifies if the operation is a class constructor. */ isConstructor?: boolean; /** * Specifies whether an execution of the BehavioralFeature leaves the state of the system unchanged * (isQuery=true) or whether side effects may occur (isQuery=false). */ isQuery?: boolean; } export interface ModelProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Denotes where the namespace structure for your class model starts; all nested packages below a * namespace root will form the namespace hierarchy for contained types. */ isNamespaceRoot?: boolean; } export interface InterfaceRealizationProperties { /** * Gets the unique ID of the element. */ id?: string; /** * References the Interface specifying the conformance contract. */ contract: elements.Interface; } export interface InterfaceProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; } export interface GeneralizationProperties { /** * Gets the unique ID of the element. */ id?: string; /** * The general classifier in the Generalization relationship. */ general: elements.Classifier; /** * Indicates whether the specific Classifier can be used wherever the general Classifier can be used. * If true, the execution traces of the specific Classifier shall be a superset of the execution traces * of the general Classifier. If false, there is no such constraint on execution traces. If unset, the * modeler has not stated whether there is such a constraint or not. */ isSubstitutable?: boolean; } export interface EnumerationLiteralProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * Gets or set the sort order of the element if it is part of a collection. The value is 0 for elements * to which no particular ordering applies. Elements with a lower order come before elements with a * higher order. */ order?: number; } export interface EnumerationProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; /** * Gets the base type of the enumeration. For most programming language, this is an integral type if * not specified. */ baseType?: elements.Type; } export interface CommentProperties { /** * Gets the unique ID of the element. */ id?: string; /** * */ body?: string; } export interface AssociationProperties { /** * Gets the unique ID of the element. */ id?: string; /** * If true, using this element should be avoided, typically because it has been superseded. */ isDeprecated?: boolean; /** * The name of the NamedElement. */ name: string; /** * Determines whether and how the NamedElement is visible outside its owning Namespace. */ visibility?: elements.VisibilityKind; /** * If true, the type was inferred by a tool, for example during data import. An inferred type is never * owned by any Package. */ isInferred?: boolean; /** * Indicates whether it is possible to further redefine a RedefinableElement. If the value is true, * then it is not possible to further redefine the RedefinableElement. */ isLeaf?: boolean; /** * If true, the Classifier can only be instantiated by instantiating one of its specializations. An * abstract Classifier is intended to be used by other Classifiers e.g., as the target of Associations * or Generalizations. */ isAbstract?: boolean; /** * If true, the Classifier cannot be specialized. */ isFinalSpecialization?: boolean; } export interface ClassEditable extends elements.Class, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addInterfaceRealization(properties: InterfaceRealizationProperties, initFn?: (interfaceRealization: InterfaceRealizationEditable) => void): this; deleteInterfaceRealization(interfaceRealization: elements.InterfaceRealization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface StereotypeEditable extends elements.Stereotype, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addInterfaceRealization(properties: InterfaceRealizationProperties, initFn?: (interfaceRealization: InterfaceRealizationEditable) => void): this; deleteInterfaceRealization(interfaceRealization: elements.InterfaceRealization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface PropertyEditable extends elements.Property, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; setDefaultValue(value: boolean): this; setDefaultValue(value: number): this; setDefaultValueNull(): this; setDefaultValue(value: string): this; setLowerValue(value: number): this; setLowerValueUnlimited(): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; setUpperValue(value: number): this; setUpperValueUnlimited(): this; } export interface PackageEditable extends elements.Package, Deletable { addAppliedProfile(profile: elements.Profile): this; removeAppliedProfile(profile: elements.Profile): this; addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addPackage(properties: PackageProperties, initFn?: (pack: PackageEditable) => void): this; addProfile(properties: ProfileProperties, initFn?: (profile: ProfileEditable) => void): this; addAssociation(properties: AssociationProperties, initFn?: (association: AssociationEditable) => void): this; addClass(properties: ClassProperties, initFn?: (cls: ClassEditable) => void): this; addStereotype(properties: StereotypeProperties, initFn?: (stereotype: StereotypeEditable) => void): this; addDataType(properties: DataTypeProperties, initFn?: (dataType: DataTypeEditable) => void): this; addEnumeration(properties: EnumerationProperties, initFn?: (enumeration: EnumerationEditable) => void): this; addPrimitiveType(properties: PrimitiveTypeProperties, initFn?: (primitiveType: PrimitiveTypeEditable) => void): this; addInterface(properties: InterfaceProperties, initFn?: (iface: InterfaceEditable) => void): this; deletePackagedElement(packageableElement: elements.PackageableElement): this; } export interface ProfileEditable extends elements.Profile, Deletable { addAppliedProfile(profile: elements.Profile): this; removeAppliedProfile(profile: elements.Profile): this; addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addPackage(properties: PackageProperties, initFn?: (pack: PackageEditable) => void): this; addProfile(properties: ProfileProperties, initFn?: (profile: ProfileEditable) => void): this; addAssociation(properties: AssociationProperties, initFn?: (association: AssociationEditable) => void): this; addClass(properties: ClassProperties, initFn?: (cls: ClassEditable) => void): this; addStereotype(properties: StereotypeProperties, initFn?: (stereotype: StereotypeEditable) => void): this; addDataType(properties: DataTypeProperties, initFn?: (dataType: DataTypeEditable) => void): this; addEnumeration(properties: EnumerationProperties, initFn?: (enumeration: EnumerationEditable) => void): this; addPrimitiveType(properties: PrimitiveTypeProperties, initFn?: (primitiveType: PrimitiveTypeEditable) => void): this; addInterface(properties: InterfaceProperties, initFn?: (iface: InterfaceEditable) => void): this; deletePackagedElement(packageableElement: elements.PackageableElement): this; } export interface DataTypeEditable extends elements.DataType, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface PrimitiveTypeEditable extends elements.PrimitiveType, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface ParameterEditable extends elements.Parameter, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; setDefaultValue(value: boolean): this; setDefaultValue(value: number): this; setDefaultValueNull(): this; setDefaultValue(value: string): this; setLowerValue(value: number): this; setLowerValueUnlimited(): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; setUpperValue(value: number): this; setUpperValueUnlimited(): this; } export interface OperationEditable extends elements.Operation, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedParameter(properties: ParameterProperties, initFn?: (parameter: ParameterEditable) => void): this; deleteOwnedParameter(parameter: elements.Parameter): this; } export interface ModelEditable extends elements.Model, Deletable { addAppliedProfile(profile: elements.Profile): this; removeAppliedProfile(profile: elements.Profile): this; addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addPackage(properties: PackageProperties, initFn?: (pack: PackageEditable) => void): this; addProfile(properties: ProfileProperties, initFn?: (profile: ProfileEditable) => void): this; addAssociation(properties: AssociationProperties, initFn?: (association: AssociationEditable) => void): this; addClass(properties: ClassProperties, initFn?: (cls: ClassEditable) => void): this; addStereotype(properties: StereotypeProperties, initFn?: (stereotype: StereotypeEditable) => void): this; addDataType(properties: DataTypeProperties, initFn?: (dataType: DataTypeEditable) => void): this; addEnumeration(properties: EnumerationProperties, initFn?: (enumeration: EnumerationEditable) => void): this; addPrimitiveType(properties: PrimitiveTypeProperties, initFn?: (primitiveType: PrimitiveTypeEditable) => void): this; addInterface(properties: InterfaceProperties, initFn?: (iface: InterfaceEditable) => void): this; deletePackagedElement(packageableElement: elements.PackageableElement): this; } export interface InterfaceRealizationEditable extends elements.InterfaceRealization, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; } export interface InterfaceEditable extends elements.Interface, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface GeneralizationEditable extends elements.Generalization, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; } export interface EnumerationLiteralEditable extends elements.EnumerationLiteral, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; setSpecification(value: number): this; setSpecification(value: string): this; } export interface EnumerationEditable extends elements.Enumeration, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addOwnedAttribute(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedAttribute(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedLiteral(properties: EnumerationLiteralProperties, initFn?: (enumerationLiteral: EnumerationLiteralEditable) => void): this; deleteOwnedLiteral(enumerationLiteral: elements.EnumerationLiteral): this; addOwnedOperation(properties: OperationProperties, initFn?: (operation: OperationEditable) => void): this; deleteOwnedOperation(operation: elements.Operation): this; } export interface AssociationEditable extends elements.Association, Deletable { addAppliedStereotype(stereotype: elements.Stereotype): this; removeAppliedStereotype(stereotype: elements.Stereotype): this; addGeneralization(properties: GeneralizationProperties, initFn?: (generalization: GeneralizationEditable) => void): this; deleteGeneralization(generalization: elements.Generalization): this; addMemberEnd(property: elements.Property): this; removeMemberEnd(property: elements.Property): this; addOwnedComment(properties: CommentProperties): this; deleteOwnedComment(comment: elements.Comment): this; addOwnedEnd(properties: PropertyProperties, initFn?: (property: PropertyEditable) => void): this; deleteOwnedEnd(property: elements.Property): this; }