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
import concerto.metamodel.TypeIdentifier from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DecoratorLiteral from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DecoratorString from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DecoratorNumber from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DecoratorBoolean from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DecoratorTypeReference from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.Decorator from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.Identified from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.IdentifiedBy from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.EnumDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.EnumFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ClassDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.AssetDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ParticipantDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.TransactionDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.EventDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ConceptDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.FieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.RelationshipDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ObjectFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.BooleanFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DateTimeFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.StringFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.StringRegexValidator from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DoubleFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.DoubleDomainValidator from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.IntegerFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.IntegerDomainValidator from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.LongFieldDeclaration from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.LongDomainValidator from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.Import from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ImportAll from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ImportType from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
import concerto.metamodel.ModelFile from https://models.accordproject.org/concerto/metamodel@0.2.0.cto
/*
* 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
}