Namespace concerto.metamodel0.2.0

Compatible with Concerto versions . Has 34 declarations.

Concerto JSON AST PlantUML XML Schema Typescript C# OData JSON Schema GraphQL Java Go Avro Markdown OpenAPI Protobuf Mermaid

Declared Types

      
      import concerto.metamodel.TypeIdentifier from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DecoratorLiteral from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DecoratorString from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DecoratorNumber from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DecoratorBoolean from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DecoratorTypeReference from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.Decorator from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.Identified from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.IdentifiedBy from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.EnumDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.EnumFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ClassDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.AssetDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ParticipantDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.TransactionDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.EventDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ConceptDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.FieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.RelationshipDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ObjectFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.BooleanFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DateTimeFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.StringFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.StringRegexValidator from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DoubleFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.DoubleDomainValidator from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.IntegerFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.IntegerDomainValidator from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.LongFieldDeclaration from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.LongDomainValidator from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.Import from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ImportAll from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ImportType from /concerto/metamodel@0.2.0.cto
      import concerto.metamodel.ModelFile from /concerto/metamodel@0.2.0.cto
      
      

Dependencies

  • None

Source

    /*
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

namespace concerto.metamodel

/**
 * The metadmodel for Concerto files
 */
concept TypeIdentifier {
  @FormEditor("selectOptions", "types")
  o String name default="Concept"
  @FormEditor( "hide", true)
  o String fullyQualifiedName optional
}

abstract concept DecoratorLiteral {
}

concept DecoratorString extends DecoratorLiteral {
  o String value
}

concept DecoratorNumber extends DecoratorLiteral {
  o Double value
}

concept DecoratorBoolean extends DecoratorLiteral {
  o Boolean value
}

concept DecoratorTypeReference extends DecoratorLiteral {
  o TypeIdentifier type
  o Boolean isArray default=false
}

concept Decorator {
  o String name
  o DecoratorLiteral[] arguments optional
}

concept Identified {
}

concept IdentifiedBy extends Identified {
  o String name
}

concept EnumDeclaration {
  @FormEditor("title", "Enum Name")
  o String name default="ClassName" regex=/^(?!null|true|false)(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  o EnumFieldDeclaration[] fields
}

concept EnumFieldDeclaration {
  o String name default="fieldName" regex=/^(?!null|true|false)(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  @FormEditor("hide", true)
  o Decorator[] decorators optional
}

@FormEditor("defaultSubclass","concerto.metamodel.ConceptDeclaration")
abstract concept ClassDeclaration {
  @FormEditor("title", "Class Name")
  o String name default="ClassName" regex=/^(?!null|true|false)(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  @FormEditor("hide", true)
  o Decorator[] decorators optional
  o Boolean isAbstract default=false
  o Identified identified optional
  @FormEditor("title", "Super Type")
  o TypeIdentifier superType optional
  o FieldDeclaration[] fields
}

concept AssetDeclaration extends ClassDeclaration {
}

concept ParticipantDeclaration extends ClassDeclaration {
}

concept TransactionDeclaration extends ClassDeclaration {
}

concept EventDeclaration extends ClassDeclaration {
}

concept ConceptDeclaration extends ClassDeclaration {
}

@FormEditor("defaultSubclass","concerto.metamodel.StringFieldDeclaration")
abstract concept FieldDeclaration {
  o String name default="fieldName" regex=/^(?!null|true|false)(\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4})(?:\p{Lu}|\p{Ll}|\p{Lt}|\p{Lm}|\p{Lo}|\p{Nl}|\$|_|\\u[0-9A-Fa-f]{4}|\p{Mn}|\p{Mc}|\p{Nd}|\p{Pc}|\u200C|\u200D)*$/u
  @FormEditor("title", "Is Array?")
  o Boolean isArray default=false
  @FormEditor("title", "Is Optional?")
  o Boolean isOptional default=false
  @FormEditor("hide", true)
  o Decorator[] decorators optional
}

concept RelationshipDeclaration extends FieldDeclaration {
  @FormEditor("title", "Type Name", "selectOptions", "types")
  o TypeIdentifier type
}

concept ObjectFieldDeclaration extends FieldDeclaration {
  @FormEditor("hide", true)
  o String defaultValue optional
  @FormEditor("title", "Type Name", "selectOptions", "types")
  o TypeIdentifier type
}

concept BooleanFieldDeclaration extends FieldDeclaration {
  @FormEditor("hide", true)
  o Boolean defaultValue optional
}

concept DateTimeFieldDeclaration extends FieldDeclaration {
}

concept StringFieldDeclaration extends FieldDeclaration {
  @FormEditor("hide", true)
  o String defaultValue optional
  @FormEditor("hide", true)
  o StringRegexValidator validator optional
}

concept StringRegexValidator {
  o String regex
}

concept DoubleFieldDeclaration extends FieldDeclaration {
  o Double defaultValue optional
  o DoubleDomainValidator validator optional
}

concept DoubleDomainValidator {
  o Double lower optional
  o Double upper optional
}

concept IntegerFieldDeclaration extends FieldDeclaration {
  @FormEditor("hide", true)
  o Integer defaultValue optional
  @FormEditor("hide", true)
  o IntegerDomainValidator validator optional
}

concept IntegerDomainValidator {
  o Integer lower optional
  o Integer upper optional
}

concept LongFieldDeclaration extends FieldDeclaration {
  @FormEditor("hide", true)
  o Long defaultValue optional
  @FormEditor("hide", true)
  o LongDomainValidator validator optional
}

concept LongDomainValidator {
  o Long lower optional
  o Long upper optional
}

abstract concept Import {
  o String namespace
  o String uri optional
}

concept ImportAll extends Import {
}

concept ImportType extends Import {
  o String name
}

concept ModelFile {
  o String namespace default="my.namespace"
  @FormEditor("hide", true)
  o Import[] imports optional
  @FormEditor("title", "Enums")
  o EnumDeclaration[] enumDeclarations optional
  @FormEditor("title", "Classes")
  o ClassDeclaration[] classDeclarations optional
}