Namespace concerto.metamodel0.1.0

Compatible with Concerto versions . Has 33 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.DecoratorLiteral from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.DecoratorString from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.DecoratorNumber from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.DecoratorBoolean from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.TypeIdentifier from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.DecoratorIdentifier from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.Decorator from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.ClassDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.AssetDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.ParticipantDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.TransactionDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.EventDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.ConceptDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.EnumDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.StringDefault from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.BooleanDefault from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.IntegerDefault from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.RealDefault from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.FieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.ObjectFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.BooleanFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.DateTimeFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.StringFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.StringRegexValidator from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.RealDomainValidator from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.IntegerDomainValidator from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.RealFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.IntegerFieldDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.RelationshipDeclaration from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.Import from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.NamespaceImport from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.TypeImport from https://models.accordproject.org/concerto/metamodel.cto
      import concerto.metamodel.ModelFile from https://models.accordproject.org/concerto/metamodel.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
 */

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 TypeIdentifier {
  o String fullyQualifiedName
}

concept DecoratorIdentifier extends DecoratorLiteral {
  o TypeIdentifier identifier
  o Boolean isArray default=false
}

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

abstract concept ClassDeclaration {
  o Decorator[] decorators optional
  o Boolean isAbstract default=false
  o String identifier
  o String identifiedByField optional
  o TypeIdentifier superType optional
}

concept AssetDeclaration extends ClassDeclaration {
}

concept ParticipantDeclaration extends ClassDeclaration {
}

concept TransactionDeclaration extends ClassDeclaration {
}

concept EventDeclaration extends ClassDeclaration {
}

concept ConceptDeclaration extends ClassDeclaration {
}

// TODO - enums do not support abstract or super types
concept EnumDeclaration extends ClassDeclaration {
}

concept StringDefault {
  o String value
}

concept BooleanDefault {
  o Boolean value
}

concept IntegerDefault {
  o Integer value
}

concept RealDefault {
  o Double value
}

abstract concept FieldDeclaration {
  o String name
  o Boolean isArray optional
  o Boolean isOptional optional 
  o Decorator[] decorators optional
}

concept ObjectFieldDeclaration extends FieldDeclaration {
  o StringDefault defaultValue optional
  o TypeIdentifier type
}

concept BooleanFieldDeclaration extends FieldDeclaration {
  o BooleanDefault defaultValue optional
}

concept DateTimeFieldDeclaration extends FieldDeclaration {
}

concept StringFieldDeclaration extends FieldDeclaration {
  o StringDefault defaultValue optional
  o StringRegexValidator validator optional
}

concept StringRegexValidator {
  o String regex
}

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

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

concept RealFieldDeclaration extends FieldDeclaration {
  o RealDefault defaultValue optional
  o RealDomainValidator validator optional
}

concept IntegerFieldDeclaration extends FieldDeclaration {
  o IntegerDefault defaultValue optional
  o IntegerDomainValidator validator optional
}

concept RelationshipDeclaration extends FieldDeclaration {
  o TypeIdentifier type
}

abstract concept Import {
  o String uri optional
}

concept NamespaceImport extends Import {
  o String namespace
}

concept TypeImport extends Import {
  o TypeIdentifier identifier
}

concept ModelFile {
  o String namespace
  o Import[] imports optional
  o ClassDeclaration[] declarations optional
}