Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: aml-org/amf-aml
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 6.0.4
Choose a base ref
...
head repository: aml-org/amf-aml
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 6.0.5
Choose a head ref
Loading
Showing with 8,901 additions and 1,080 deletions.
  1. +43 −0 amf-aml/shared/src/main/scala/amf/aml/client/platform/model/domain/ConditionalNodeMapping.scala
  2. +5 −0 amf-aml/shared/src/main/scala/amf/aml/client/scala/AMLDialectResult.scala
  3. +39 −0 amf-aml/shared/src/main/scala/amf/aml/client/scala/model/domain/ConditionalNodeMapping.scala
  4. +2 −1 amf-aml/shared/src/main/scala/amf/aml/client/scala/model/domain/NodeMapping.scala
  5. +4 −2 amf-aml/shared/src/main/scala/amf/aml/client/scala/model/domain/PropertyMapping.scala
  6. +2 −1 amf-aml/shared/src/main/scala/amf/aml/client/scala/model/domain/UnionNodeMapping.scala
  7. +10 −0 amf-aml/shared/src/main/scala/amf/aml/client/scala/model/domain/WithDefaultFacet.scala
  8. +9 −0 amf-aml/shared/src/main/scala/amf/aml/internal/annotations/FromUnionRangeMapping.scala
  9. +2 −1 amf-aml/shared/src/main/scala/amf/aml/internal/entities/AMLEntities.scala
  10. +7 −1 amf-aml/shared/src/main/scala/amf/aml/internal/metamodel/domain/AnnotationMappingModel.scala
  11. +47 −0 amf-aml/shared/src/main/scala/amf/aml/internal/metamodel/domain/ConditionalNodeMappingModel.scala
  12. +2 −1 amf-aml/shared/src/main/scala/amf/aml/internal/metamodel/domain/NodeMappingModel.scala
  13. +7 −2 amf-aml/shared/src/main/scala/amf/aml/internal/metamodel/domain/PropertyLikeMappingModel.scala
  14. +8 −2 amf-aml/shared/src/main/scala/amf/aml/internal/metamodel/domain/PropertyMappingModel.scala
  15. +8 −1 amf-aml/shared/src/main/scala/amf/aml/internal/parse/dialects/DialectContext.scala
  16. +11 −6 amf-aml/shared/src/main/scala/amf/aml/internal/parse/dialects/DialectSyntax.scala
  17. +45 −359 amf-aml/shared/src/main/scala/amf/aml/internal/parse/dialects/DialectsParser.scala
  18. +82 −0 ...rc/main/scala/amf/aml/internal/parse/dialects/nodemapping/like/ConditionalNodeMappingParser.scala
  19. +52 −0 ...hared/src/main/scala/amf/aml/internal/parse/dialects/nodemapping/like/NodeMappingLikeParser.scala
  20. +12 −0 .../main/scala/amf/aml/internal/parse/dialects/nodemapping/like/NodeMappingLikeParserInterface.scala
  21. +309 −0 ...ml/shared/src/main/scala/amf/aml/internal/parse/dialects/nodemapping/like/NodeMappingParser.scala
  22. +69 −0 ...ared/src/main/scala/amf/aml/internal/parse/dialects/nodemapping/like/UnionNodeMappingParser.scala
  23. +8 −0 amf-aml/shared/src/main/scala/amf/aml/internal/parse/hints/AmlHeaders.scala
  24. +5 −1 amf-aml/shared/src/main/scala/amf/aml/internal/parse/instances/parser/ObjectMapPropertyParser.scala
  25. +86 −62 amf-aml/shared/src/main/scala/amf/aml/internal/parse/instances/parser/ObjectUnionParser.scala
  26. +10 −9 amf-aml/shared/src/main/scala/amf/aml/internal/parse/plugin/AMLDialectInstanceParsingPlugin.scala
  27. +1 −1 amf-aml/shared/src/main/scala/amf/aml/internal/parse/plugin/AMLVocabularyParsingPlugin.scala
  28. +92 −0 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/ClassTermParser.scala
  29. +21 −0 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/IriReferenceParsing.scala
  30. +117 −0 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/PropertyTermParser.scala
  31. +18 −0 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/SingleOrMultipleItems.scala
  32. +34 −211 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/VocabulariesParser.scala
  33. +4 −1 amf-aml/shared/src/main/scala/amf/aml/internal/parse/vocabularies/VocabularyContext.scala
  34. +22 −0 amf-aml/shared/src/main/scala/amf/aml/internal/render/emitters/dialects/DefaultFacetEmission.scala
  35. +7 −8 amf-aml/shared/src/main/scala/amf/aml/internal/render/emitters/dialects/DialectEmitter.scala
  36. +12 −4 amf-aml/shared/src/main/scala/amf/aml/internal/render/emitters/dialects/NodeMappingEmitter.scala
  37. +14 −5 amf-aml/shared/src/main/scala/amf/aml/internal/render/emitters/dialects/PropertyMappingEmitter.scala
  38. +3 −8 ...l/shared/src/main/scala/amf/aml/internal/render/emitters/dialects/RamlDialectLibraryEmitter.scala
  39. +4 −10 amf-aml/shared/src/main/scala/amf/aml/internal/render/emitters/vocabularies/VocabularyEmitter.scala
  40. +4 −1 amf-aml/shared/src/main/scala/amf/aml/internal/render/plugin/AMLDialectInstanceRenderingPlugin.scala
  41. +24 −22 amf-aml/shared/src/main/scala/amf/aml/internal/render/plugin/AMLDialectRenderingPlugin.scala
  42. +28 −7 amf-aml/shared/src/main/scala/amf/aml/internal/render/plugin/AMLVocabularyRenderingPlugin.scala
  43. +58 −0 amf-aml/shared/src/main/scala/amf/aml/internal/render/plugin/SyntaxDocument.scala
  44. +7 −9 amf-aml/shared/src/main/scala/amf/aml/internal/transform/domain/NodeMappingResolver.scala
  45. +3 −0 amf-aml/shared/src/main/scala/amf/aml/internal/utils/VocabulariesRegister.scala
  46. +14 −1 ...resources/vocabularies2/dialects/annotation-mapping-with-multiple-domains/dialect.expanded.jsonld
  47. +9 −1 ...esources/vocabularies2/dialects/annotation-mapping-with-multiple-domains/dialect.flattened.jsonld
  48. +14 −1 amf-aml/shared/src/test/resources/vocabularies2/dialects/annotation-mappings/dialect.expanded.jsonld
  49. +9 −1 ...aml/shared/src/test/resources/vocabularies2/dialects/annotation-mappings/dialect.flattened.jsonld
  50. +11 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/default-facet/dialect.cycled.yaml
  51. +447 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/default-facet/dialect.expanded.jsonld
  52. +343 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/default-facet/dialect.flattened.jsonld
  53. +12 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/default-facet/dialect.yaml
  54. +136 −0 .../shared/src/test/resources/vocabularies2/dialects/empty-extends-on-node-mapping.validation.jsonld
  55. +11 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/empty-extends-on-node-mapping.yaml
  56. +14 −14 amf-aml/shared/src/test/resources/vocabularies2/dialects/example21.expanded.jsonld
  57. +25 −25 amf-aml/shared/src/test/resources/vocabularies2/dialects/example21.flattened.jsonld
  58. +5 −5 amf-aml/shared/src/test/resources/vocabularies2/dialects/example23a.expanded.jsonld
  59. +9 −9 amf-aml/shared/src/test/resources/vocabularies2/dialects/example23a.flattened.jsonld
  60. +5 −5 amf-aml/shared/src/test/resources/vocabularies2/dialects/example23b.expanded.jsonld
  61. +9 −9 amf-aml/shared/src/test/resources/vocabularies2/dialects/example23b.flattened.jsonld
  62. +951 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/example24.expanded.jsonld
  63. +741 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/example24.flattened.jsonld
  64. +32 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/example24.yaml
  65. +185 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-fragment/dialect.jsonld
  66. +13 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-fragment/dialect.yaml
  67. +5 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-fragment/fragment.yaml
  68. +189 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-library/dialect.jsonld
  69. +15 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-library/dialect.yaml
  70. +7 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive-library/library.yaml
  71. +99 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive/dialect.jsonld
  72. +12 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/id-directive/dialect.yaml
  73. +1 −1 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/simple/dialect.json
  74. +23 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/with-library/dialect.cycled.json
  75. +1 −1 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/with-library/dialect.json
  76. +31 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/with-vocabulary/dialect.cycled.json
  77. +1 −1 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/with-vocabulary/dialect.jsonld
  78. +1 −1 amf-aml/shared/src/test/resources/vocabularies2/dialects/json/with-vocabulary/vocabulary.jsonld
  79. +37 −0 amf-aml/shared/src/test/resources/vocabularies2/dialects/range-mapping.yaml
  80. +14 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/array-of-any/dialect.yaml
  81. +61 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/array-of-any/instance.golden.json
  82. +61 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/array-of-any/instance.json
  83. +3 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/defined-union-range-mapping.yaml
  84. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/instances/example5.expanded.jsonld
  85. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/instances/example5.flattened.jsonld
  86. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/instances/example6.expanded.jsonld
  87. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/instances/example6.flattened.jsonld
  88. +14 −14 amf-aml/shared/src/test/resources/vocabularies2/instances/example6b.expanded.jsonld
  89. +12 −12 amf-aml/shared/src/test/resources/vocabularies2/instances/example6b.flattened.jsonld
  90. +13 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-invalid/dialect.yaml
  91. +14 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-invalid/report.txt
  92. +18 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-valid/dialect.yaml
  93. +5 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-valid/fragment.yaml
  94. +7 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-valid/library.yaml
  95. +4 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/invalids/id-directive-valid/report.txt
  96. +27 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/json-root-union/dialect.yaml
  97. +55 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/json-root-union/instance.golden.jsonld
  98. +4 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/json-root-union/instance.json
  99. +48 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/rest-connector/dialect-union.yaml
  100. +28 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/rest-connector/dialect.yaml
  101. +159 −0 ...shared/src/test/resources/vocabularies2/instances/rest-connector/instance.golden.flattened.jsonld
  102. +5 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/rest-connector/instance.yaml
  103. +2 −0 amf-aml/shared/src/test/resources/vocabularies2/instances/undefined-union-range-mapping.yaml
  104. +552 −19 amf-aml/shared/src/test/resources/vocabularies2/production/ABOUT/ABOUT-dialect.expanded.jsonld
  105. +347 −19 amf-aml/shared/src/test/resources/vocabularies2/production/ABOUT/ABOUT-dialect.flattened.jsonld
  106. +14 −1 amf-aml/shared/src/test/resources/vocabularies2/production/Instagram/dialect.json
  107. +1 −1 amf-aml/shared/src/test/resources/vocabularies2/production/asyncapi/dialect2.yaml
  108. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/production/cfg/example1_instance.expanded.jsonld
  109. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/production/cfg/example1_instance.flattened.jsonld
  110. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/production/cfg/example2_instance.expanded.jsonld
  111. +2 −2 amf-aml/shared/src/test/resources/vocabularies2/production/cfg/example2_instance.flattened.jsonld
  112. +1,474 −122 amf-aml/shared/src/test/resources/vocabularies2/production/streams/activity.json
  113. +32 −0 ...esources/vocabularies2/validations/vocabularies/parser-errors/class-term-with-null-entries.jsonld
  114. +6 −0 .../resources/vocabularies2/validations/vocabularies/parser-errors/class-term-with-null-entries.yaml
  115. +32 −0 ...urces/vocabularies2/validations/vocabularies/parser-errors/property-term-with-null-entries.jsonld
  116. +6 −0 ...sources/vocabularies2/validations/vocabularies/parser-errors/property-term-with-null-entries.yaml
  117. +28 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example3.expanded.jsonld
  118. +18 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example3.flattened.jsonld
  119. +80 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example4.expanded.jsonld
  120. +50 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example4.flattened.jsonld
  121. +54 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example5.expanded.jsonld
  122. +34 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example5.flattened.jsonld
  123. +56 −4 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example6.expanded.jsonld
  124. +36 −4 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example6.flattened.jsonld
  125. +168 −12 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example7.expanded.jsonld
  126. +108 −12 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example7.flattened.jsonld
  127. +28 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example8.expanded.jsonld
  128. +18 −2 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/example8.flattened.jsonld
  129. +22 −0 amf-aml/shared/src/test/resources/vocabularies2/vocabularies/json/vocabulary.json
  130. +68 −3 .../shared/src/test/resources/vocabularies2/vocabularies/multiple-extends/vocabulary.expanded.jsonld
  131. +43 −3 ...shared/src/test/resources/vocabularies2/vocabularies/multiple-extends/vocabulary.flattened.jsonld
  132. +52 −0 amf-aml/shared/src/test/scala/amf/testing/parsing/DialectInstanceAssertionTest.scala
  133. +65 −2 amf-aml/shared/src/test/scala/amf/testing/parsing/DialectInstancesParsingTest.scala
  134. +55 −0 amf-aml/shared/src/test/scala/amf/testing/parsing/DialectsParsingTest.scala
  135. +22 −0 amf-aml/shared/src/test/scala/amf/testing/parsing/JsonDialectCycleTest.scala
  136. +12 −0 amf-aml/shared/src/test/scala/amf/testing/parsing/JsonVocabularyCycleTest.scala
  137. +39 −3 amf-aml/shared/src/test/scala/amf/testing/rdf/DialectInstancesRDFTest.scala
  138. +14 −2 amf-aml/shared/src/test/scala/amf/testing/validation/DialectDefinitionValidationTest.scala
  139. +8 −0 amf-aml/shared/src/test/scala/amf/testing/validation/DialectInstancesValidationTest.scala
  140. +8 −0 amf-aml/shared/src/test/scala/amf/testing/validation/VocabularyDefinitionValidationTest.scala
  141. +1 −1 amf-rdf/shared/src/main/scala/amf/rdf/internal/RdfModelEmitter.scala
  142. +2 −0 amf-rdf/shared/src/main/scala/amf/rdf/internal/parsers/ObjectParser.scala
  143. +2 −1 amf-validation/shared/src/main/scala/amf/validation/internal/shacl/custom/CustomShaclValidator.scala
  144. +2 −2 build.sbt
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
package amf.aml.client.platform.model.domain

import amf.core.client.platform.model.StrField
import amf.aml.internal.convert.VocabulariesClientConverter._
import amf.core.client.platform.model.domain.{DomainElement, Linkable}

import scala.scalajs.js.annotation.{JSExportAll, JSExportTopLevel}
import amf.aml.client.scala.model.domain.{ConditionalNodeMapping => InternalConditionalNodeMapping}

@JSExportAll
case class ConditionalNodeMapping(override private[amf] val _internal: InternalConditionalNodeMapping)
extends DomainElement
with Linkable {

@JSExportTopLevel("ConditionalNodeMapping")
def this() = this(InternalConditionalNodeMapping())

def name: StrField = _internal.name

def withName(name: String): ConditionalNodeMapping = {
_internal.withName(name)
this
}

def ifMapping(): StrField = _internal.ifMapping
def thenMapping(): StrField = _internal.thenMapping
def elseMapping(): StrField = _internal.elseMapping

override def linkCopy(): ConditionalNodeMapping = ConditionalNodeMapping(_internal.linkCopy())

def withIfMapping(ifMapping: String): ConditionalNodeMapping = {
_internal.withIfMapping(ifMapping)
this
}
def withThenMapping(thenMapping: String): ConditionalNodeMapping = {
_internal.withIfMapping(thenMapping)
this
}
def withElseMapping(elseMapping: String): ConditionalNodeMapping = {
_internal.withIfMapping(elseMapping)
this
}
}
Original file line number Diff line number Diff line change
@@ -4,6 +4,11 @@ import amf.aml.client.scala.model.document.{Dialect, DialectInstance, Vocabulary
import amf.core.client.scala.{AMFParseResult, AMFResult}
import amf.core.client.scala.validation.AMFValidationResult

private[amf] object AMLDialectResult {
def unapply(result: AMLDialectResult): Option[(Dialect, Seq[AMFValidationResult])] =
Some((result.dialect, result.results))
}

class AMLDialectResult(val dialect: Dialect, results: Seq[AMFValidationResult])
extends AMFParseResult(dialect, results)

Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
package amf.aml.client.scala.model.domain

import amf.aml.internal.metamodel.domain.ConditionalNodeMappingModel
import amf.aml.internal.metamodel.domain.ConditionalNodeMappingModel._
import amf.core.client.scala.model.StrField
import amf.core.client.scala.model.domain.{DomainElement, Linkable}
import amf.core.internal.parser.domain.{Annotations, Fields}
import amf.core.internal.utils._
import org.yaml.model.YMap

case class ConditionalNodeMapping(fields: Fields, annotations: Annotations)
extends DomainElement
with Linkable
with MergeableMapping
with NodeMappable[ConditionalNodeMappingModel.type] {

override def meta: ConditionalNodeMappingModel.type = ConditionalNodeMappingModel

def ifMapping: StrField = fields.field(If)
def thenMapping: StrField = fields.field(Then)
def elseMapping: StrField = fields.field(Else)

def withIfMapping(ifMapping: String): ConditionalNodeMapping = set(If, ifMapping)
def withThenMapping(thenMapping: String): ConditionalNodeMapping = set(Then, thenMapping)
def withElseMapping(elseMapping: String): ConditionalNodeMapping = set(Else, elseMapping)

override def linkCopy(): ConditionalNodeMapping = ConditionalNodeMapping().withId(id)
override protected def classConstructor: (Fields, Annotations) => Linkable with DomainElement =
ConditionalNodeMapping.apply
private[amf] override def componentId: String = "/" + name.value().urlComponentEncoded
}

object ConditionalNodeMapping {
def apply(): ConditionalNodeMapping = apply(Annotations())

def apply(ast: YMap): ConditionalNodeMapping = apply(Annotations(ast))

def apply(annotations: Annotations): ConditionalNodeMapping = ConditionalNodeMapping(Fields(), annotations)
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package amf.aml.client.scala.model.domain

import amf.core.client.scala.model.StrField
import amf.core.client.scala.model.domain.{DomainElement, Linkable}
import amf.core.client.scala.model.domain.{DataNode, DomainElement, Linkable}
import amf.core.internal.parser.domain.{Annotations, Fields}
import amf.core.internal.utils._
import amf.aml.internal.metamodel.domain.NodeMappingModel
import amf.aml.internal.metamodel.domain.NodeMappingModel._
import amf.core.internal.metamodel.domain.ShapeModel
import org.yaml.model.YMap

class NodeMapping(override val fields: Fields, override val annotations: Annotations)
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
package amf.aml.client.scala.model.domain

import amf.core.client.scala.model._
import amf.core.client.scala.model.domain.AmfScalar
import amf.core.client.scala.model.domain.{AmfScalar, DataNode}
import amf.core.client.scala.vocabulary.{Namespace, ValueType}
import amf.core.internal.metamodel.{Field, Type}
import amf.core.internal.parser.domain.{Annotations, Fields}
import amf.aml.internal.metamodel.domain.PropertyMappingModel._
import amf.aml.internal.metamodel.domain.{DialectDomainElementModel, PropertyMappingModel}
import amf.core.internal.metamodel.domain.ShapeModel
import org.yaml.model.YPart

class PropertyClassification
@@ -23,7 +24,8 @@ object ExternalLinkProperty extends PropertyClassification
case class PropertyMapping(fields: Fields, annotations: Annotations)
extends PropertyLikeMapping[PropertyMappingModel.type]
with MergeableMapping
with NodeWithDiscriminator[PropertyMappingModel.type] {
with NodeWithDiscriminator[PropertyMappingModel.type]
with WithDefaultFacet {

def mapKeyProperty(): StrField = fields.field(MapKeyProperty)
def mapValueProperty(): StrField = fields.field(MapValueProperty)
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
package amf.aml.client.scala.model.domain
import amf.core.client.scala.model.domain.{DomainElement, Linkable}
import amf.core.client.scala.model.domain.{DataNode, DomainElement, Linkable}
import amf.core.internal.parser.domain.{Annotations, Fields}
import amf.core.internal.utils._
import amf.aml.internal.metamodel.domain.UnionNodeMappingModel
import amf.core.internal.metamodel.domain.ShapeModel
import org.yaml.model.YMap

case class UnionNodeMapping(fields: Fields, annotations: Annotations)
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
package amf.aml.client.scala.model.domain

import amf.core.client.scala.model.domain.{DataNode, DomainElement}
import amf.core.internal.metamodel.domain.ShapeModel

trait WithDefaultFacet extends DomainElement {

private[amf] def default(): Option[DataNode] = Option(fields.field(ShapeModel.Default))
private[amf] def withDefault(node: DataNode) = set(ShapeModel.Default, node)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package amf.aml.internal.annotations

import amf.core.client.scala.model.domain.Annotation

/*
If AMF can't determine a single range for the node this annotation is added to
distinguish which ranges where analyzed (ALS uses this to provide suggestions)
*/
case class FromUnionRangeMapping(possibleRanges: Seq[String]) extends Annotation
Original file line number Diff line number Diff line change
@@ -37,7 +37,8 @@ private[amf] object AMLEntities extends Entities {
AnnotationMappingModel,
BaseUnitProcessingDataModel,
BaseUnitSourceInformationModel,
LocationInformationModel
LocationInformationModel,
ConditionalNodeMappingModel
)

}
Original file line number Diff line number Diff line change
@@ -2,7 +2,13 @@ package amf.aml.internal.metamodel.domain

import amf.core.internal.metamodel.{Field, Type}
import amf.core.internal.metamodel.Type.Iri
import amf.core.internal.metamodel.domain.{DomainElementModel, ExternalModelVocabularies, ModelDoc, ModelVocabularies}
import amf.core.internal.metamodel.domain.{
DomainElementModel,
ExternalModelVocabularies,
ModelDoc,
ModelVocabularies,
ShapeModel
}
import amf.core.client.scala.vocabulary.{Namespace, ValueType}
import amf.aml.client.scala.model.domain.AnnotationMapping

Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
package amf.aml.internal.metamodel.domain

import amf.aml.client.scala.model.domain.ConditionalNodeMapping
import amf.core.client.scala.model.domain.AmfObject
import amf.core.client.scala.vocabulary.{Namespace, ValueType}
import amf.core.internal.metamodel.Field
import amf.core.internal.metamodel.Type.Iri
import amf.core.internal.metamodel.domain._

object ConditionalNodeMappingModel
extends DomainElementModel
with LinkableElementModel
with MergeableMappingModel
with NodeMappableModel {

val If: Field = Field(
Iri,
Namespace.AmfAml + "if",
ModelDoc(ExternalModelVocabularies.Shacl,
"if",
"Conditional constraint if over the type of the mapped graph property")
)

val Then: Field = Field(
Iri,
Namespace.AmfAml + "then",
ModelDoc(ExternalModelVocabularies.Shacl,
"then",
"Conditional constraint then over the type of the mapped graph property")
)

val Else: Field = Field(
Iri,
Namespace.AmfAml + "else",
ModelDoc(ExternalModelVocabularies.Shacl,
"else",
"Conditional constraint else over the type of the mapped graph property")
)

override val fields
: List[Field] = Name :: If :: Then :: Else :: LinkableElementModel.fields ++ DomainElementModel.fields

override val `type`
: List[ValueType] = Namespace.Meta + "ConditionalNodeMapping" :: Namespace.Shacl + "Shape" :: DomainElementModel.`type`

override def modelInstance: AmfObject = ConditionalNodeMapping()
}
Original file line number Diff line number Diff line change
@@ -4,10 +4,11 @@ import amf.core.internal.metamodel.Field
import amf.core.internal.metamodel.Type.{Array, Iri, Str}
import amf.core.internal.metamodel.domain.{
DomainElementModel,
ExternalModelVocabularies,
LinkableElementModel,
ModelDoc,
ModelVocabularies,
ExternalModelVocabularies
ShapeModel
}
import amf.core.client.scala.model.domain.AmfObject
import amf.core.client.scala.vocabulary.{Namespace, ValueType}
Original file line number Diff line number Diff line change
@@ -2,7 +2,13 @@ package amf.aml.internal.metamodel.domain

import amf.core.internal.metamodel.Field
import amf.core.internal.metamodel.Type.{Any, Bool, Double, Int, Iri, SortedArray, Str}
import amf.core.internal.metamodel.domain.{DomainElementModel, ExternalModelVocabularies, ModelDoc, ModelVocabularies}
import amf.core.internal.metamodel.domain.{
DataNodeModel,
DomainElementModel,
ExternalModelVocabularies,
ModelDoc,
ModelVocabularies
}
import amf.core.client.scala.vocabulary.Namespace

/**
@@ -78,5 +84,4 @@ trait PropertyLikeMappingModel extends DomainElementModel with HasObjectRangeMod
Namespace.Meta + "externallyLinkable",
ModelDoc(ModelVocabularies.Meta, "linkable", "Marks this object property as supporting external links")
)

}
Original file line number Diff line number Diff line change
@@ -2,7 +2,13 @@ package amf.aml.internal.metamodel.domain

import amf.core.internal.metamodel.Field
import amf.core.internal.metamodel.Type.{Any, Bool, Double, Int, Iri, SortedArray, Str}
import amf.core.internal.metamodel.domain.{DomainElementModel, ExternalModelVocabularies, ModelDoc, ModelVocabularies}
import amf.core.internal.metamodel.domain.{
DomainElementModel,
ExternalModelVocabularies,
ModelDoc,
ModelVocabularies,
ShapeModel
}
import amf.core.client.scala.model.domain.AmfObject
import amf.core.client.scala.vocabulary.{Namespace, ValueType}
import amf.aml.client.scala.model.domain.PropertyMapping
@@ -44,7 +50,7 @@ object PropertyMappingModel
NodePropertyMapping :: Name :: LiteralRange :: ObjectRange ::
MapKeyProperty :: MapValueProperty :: MapTermKeyProperty :: MapTermValueProperty ::
MinCount :: Pattern :: Minimum :: Maximum :: AllowMultiple :: Sorted :: Enum :: TypeDiscriminator ::
Unique :: ExternallyLinkable :: TypeDiscriminatorName :: MergePolicy :: DomainElementModel.fields
Unique :: ExternallyLinkable :: TypeDiscriminatorName :: MergePolicy :: ShapeModel.Default :: DomainElementModel.fields

override def modelInstance: AmfObject = PropertyMapping()

Original file line number Diff line number Diff line change
@@ -4,6 +4,9 @@ import amf.core.client.scala.model.document.RecursiveUnit
import amf.core.client.scala.parse.document.{ParserContext, SyamlBasedParserErrorHandler}
import amf.core.internal.utils.QName
import amf.aml.internal.parse.common.{DeclarationContext, SyntaxErrorReporter}
import amf.core.client.scala.model.domain.extensions.CustomDomainProperty
import amf.core.internal.datanode.DataNodeParserContext
import amf.core.internal.parser.domain.{FragmentRef, SearchScope}
import amf.core.internal.plugins.syntax.SYamlAMFParserErrorHandler

class DialectContext(private val wrapped: ParserContext, private val ds: Option[DialectDeclarations] = None)
@@ -13,7 +16,8 @@ class DialectContext(private val wrapped: ParserContext, private val ds: Option[
wrapped.config)
with DialectSyntax
with DeclarationContext
with SyntaxErrorReporter {
with SyntaxErrorReporter
with DataNodeParserContext {

def findInRecursiveUnits(key: String): Option[String] = {
val qname = QName(key)
@@ -34,4 +38,7 @@ class DialectContext(private val wrapped: ParserContext, private val ds: Option[
override val declarations: DialectDeclarations =
ds.getOrElse(new DialectDeclarations(errorHandler = eh, futureDeclarations = futureDeclarations))

override def findAnnotation(key: String, scope: SearchScope.Scope): Option[CustomDomainProperty] = None
override def getMaxYamlReferences: _root_.scala.Option[Int] = wrapped.config.parsingOptions.maxYamlReferences
override def fragments: Map[String, FragmentRef] = Map.empty
}
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ trait DialectSyntax { this: DialectContext =>
type Required = Boolean

val dialect: Map[String, Required] = Map(
"$id" -> false,
"$type" -> false,
"dialect" -> true,
"version" -> true,
@@ -19,6 +20,7 @@ trait DialectSyntax { this: DialectContext =>
)

val library: Map[String, Required] = Map(
"$id" -> false,
"$type" -> false,
"usage" -> false,
"external" -> false,
@@ -27,12 +29,14 @@ trait DialectSyntax { this: DialectContext =>
)

val nodeMapping: Map[String, Required] = Map(
"classTerm" -> false,
"mapping" -> false,
"idProperty" -> false,
"idTemplate" -> false,
"patch" -> false,
"extends" -> false
"classTerm" -> false,
"mapping" -> false,
"idProperty" -> false,
"idTemplate" -> false,
"patch" -> false,
"extends" -> false,
"union" -> false,
"conditional" -> false
)

val propertyLikeMapping: Map[String, Required] = Map(
@@ -56,6 +60,7 @@ trait DialectSyntax { this: DialectContext =>
)

val fragment: Map[String, Required] = Map(
"$id" -> false,
"usage" -> false,
"external" -> false,
"uses" -> false
Loading