@@ -41,23 +41,23 @@ case class UMLClassAttributeName(name: String = "") extends UMLClassAttributeNam
4141
4242 override def nonEmpty : Boolean = name.nonEmpty
4343
44- override def getName (classNamedElement : UMLClassNamedElement ): String =
45- logger.debug(s " classNamedElement= $classNamedElement ${Code .source}" )
46- classNamedElement match
44+ override def getName (namedElement : UMLClassNamedElement ): String =
45+ logger.debug(s " classNamedElement= $namedElement ${Code .source}" )
46+ namedElement match
4747 case UMLClassCurie (curieOption) => curieOption.get.prefixReference.reference + FRAGMENT_SEPARATOR + name
48- case _ => classNamedElement .getName + FRAGMENT_SEPARATOR + name
48+ case _ => namedElement .getName + FRAGMENT_SEPARATOR + name
4949
5050case class UMLClassAttributeCurie (curieOption : Option [Curie ]) extends UMLClassAttributeNamedElement :
5151 private val logger = Logger [this .type ]
5252
5353 override def nonEmpty : Boolean = curieOption.nonEmpty
5454
55- override def getName (classNamedElement : UMLClassNamedElement ): String =
56- logger.debug(s " classNamedElement= $classNamedElement ${Code .source}" )
57- classNamedElement match
55+ override def getName (namedElement : UMLClassNamedElement ): String =
56+ logger.debug(s " classNamedElement= $namedElement ${Code .source}" )
57+ namedElement match
5858 case UMLClassCurie (curieOption) => curieOption.get.prefixReference.reference + FRAGMENT_SEPARATOR +
5959 curieOption.get.prefixReference.reference
60- case _ => classNamedElement .getName + FRAGMENT_SEPARATOR + curieOption.get.prefixReference.reference
60+ case _ => namedElement .getName + FRAGMENT_SEPARATOR + curieOption.get.prefixReference.reference
6161
6262
6363sealed trait UMLEnumerationNamedElement extends UMLNamedElement :
@@ -81,23 +81,23 @@ case class UMLEnumerationValueName(name: String = "") extends UMLEnumerationValu
8181
8282 override def nonEmpty : Boolean = name.nonEmpty
8383
84- override def getName (enumerationNamedElement : UMLEnumerationNamedElement ): String =
85- logger.debug(s " enumerationNamedElement= $enumerationNamedElement ${Code .source}" )
86- enumerationNamedElement match
84+ override def getName (namedElement : UMLEnumerationNamedElement ): String =
85+ logger.debug(s " enumerationNamedElement= $namedElement ${Code .source}" )
86+ namedElement match
8787 case UMLEnumerationCurie (curieOption) => curieOption.get.prefixReference.reference + FRAGMENT_SEPARATOR + name
88- case _ => enumerationNamedElement .getName + FRAGMENT_SEPARATOR + name
88+ case _ => namedElement .getName + FRAGMENT_SEPARATOR + name
8989
9090case class UMLEnumerationValueCurie (curieOption : Option [Curie ]) extends UMLEnumerationValueNamedElement :
9191 private val logger = Logger [this .type ]
9292
9393 override def nonEmpty : Boolean = curieOption.nonEmpty
9494
95- override def getName (enumerationNamedElement : UMLEnumerationNamedElement ): String =
96- logger.debug(s " enumerationNamedElement= $enumerationNamedElement ${Code .source}" )
97- enumerationNamedElement match
95+ override def getName (namedElement : UMLEnumerationNamedElement ): String =
96+ logger.debug(s " enumerationNamedElement= $namedElement ${Code .source}" )
97+ namedElement match
9898 case UMLEnumerationCurie (curieOption) => curieOption.get.prefixReference.reference + FRAGMENT_SEPARATOR +
9999 curieOption.get.prefixReference.reference
100- case _ => enumerationNamedElement .getName + FRAGMENT_SEPARATOR + curieOption.get.prefixReference.reference
100+ case _ => namedElement .getName + FRAGMENT_SEPARATOR + curieOption.get.prefixReference.reference
101101
102102
103103case class UMLClassAttributeIdentity (classNamedElement : UMLClassNamedElement ,
@@ -149,7 +149,9 @@ object UMLClassAttributeIdentity:
149149
150150 classAttributeIdentity
151151
152- private def populate (classNamedElement : UMLClassNamedElement , attributeNamedElement : UMLClassAttributeNamedElement , ontologyPrefix : PrefixNamespace ,
152+ private def populate (classNamedElement : UMLClassNamedElement ,
153+ attributeNamedElement : UMLClassAttributeNamedElement ,
154+ ontologyPrefix : PrefixNamespace ,
153155 attributeIdentity : UMLClassAttributeIdentity ,
154156 label : String ): Unit = {
155157 logger.debug(s " classNamedElement= $classNamedElement, attributeNamedElement= $attributeNamedElement, " +
@@ -211,7 +213,9 @@ object UMLEnumerationValueIdentity:
211213
212214 enumerationValueIdentity
213215
214- private def populate (enumerationNamedElement : UMLEnumerationNamedElement , valueNamedElement : UMLEnumerationValueNamedElement , ontologyPrefix : PrefixNamespace ,
216+ private def populate (enumerationNamedElement : UMLEnumerationNamedElement ,
217+ valueNamedElement : UMLEnumerationValueNamedElement ,
218+ ontologyPrefix : PrefixNamespace ,
215219 valueIdentity : UMLEnumerationValueIdentity ,
216220 label : String ): Unit = {
217221 logger.debug(s " enumerationNamedElement= $enumerationNamedElement, valueNamedElement= $valueNamedElement, " +
@@ -240,13 +244,13 @@ object UMLClassParentNamedElements:
240244 .map(m => UMLClassIdentity .findClassNamedElement(m).get.classNamedElement)
241245 new UMLClassParentNamedElements (setOfParentUncertainClassNamedElements)
242246
243- case class UMLClasses (mapOfUMLClasses : Map [UMLClassNamedElement , UMLClass ])
247+ case class UMLClasses (umlClasses : Map [UMLClassNamedElement , UMLClass ])
244248
245- case class UMLClassAttributes (mapOfUMLClassAttributes : Map [UMLClassAttributeNamedElement , UMLClassAttribute ])
249+ case class UMLClassAttributes (umlClassAttributes : Map [UMLClassAttributeNamedElement , UMLClassAttribute ])
246250
247- case class UMLEnumerations (mapOfUMLEnumerations : Map [UMLEnumerationNamedElement , UMLEnumeration ])
251+ case class UMLEnumerations (umlEnumerations : Map [UMLEnumerationNamedElement , UMLEnumeration ])
248252
249- case class UMLEnumerationValues (mapOfUMLEnumerationValues : Map [UMLEnumerationValueNamedElement , UMLEnumerationValue ])
253+ case class UMLEnumerationValues (umlEnumerationValues : Map [UMLEnumerationValueNamedElement , UMLEnumerationValue ])
250254
251255sealed trait UMLElementIRI :
252256 val iri : String
@@ -256,7 +260,8 @@ case class UMLClassIRI(override val iri: String) extends UMLElementIRI
256260object UMLClassIRI :
257261 private val logger = Logger [this .type ]
258262
259- def apply (ontologyPrefix : PrefixNamespace , classNamedElement : UMLClassNamedElement ): UMLClassIRI =
263+ def apply (ontologyPrefix : PrefixNamespace ,
264+ classNamedElement : UMLClassNamedElement ): UMLClassIRI =
260265 logger.debug(s " ontologyPrefix= $ontologyPrefix, classNamedElement= $classNamedElement ${Code .source}" )
261266 classNamedElement match
262267 case classNamedElementType : UMLClassCurie =>
@@ -270,7 +275,8 @@ case class UMLClassAttributeIRI(override val iri: String) extends UMLElementIRI
270275object UMLClassAttributeIRI :
271276 private val logger = Logger [this .type ]
272277
273- def apply (ontologyPrefix : PrefixNamespace , classNamedElement : UMLClassNamedElement ,
278+ def apply (ontologyPrefix : PrefixNamespace ,
279+ classNamedElement : UMLClassNamedElement ,
274280 classAttributeNamedElement : UMLClassAttributeNamedElement ): UMLClassAttributeIRI =
275281 logger.debug(s " ontologyPrefix.prefixIRI.iri = ${ontologyPrefix.prefixIRI.iri}, " +
276282 s " classAttributeNamedElement.getName = ${classAttributeNamedElement.getName} ${Code .source}" )
@@ -301,7 +307,8 @@ case class UMLEnumerationValueIRI(override val iri: String) extends UMLElementIR
301307object UMLEnumerationValueIRI :
302308 private val logger = Logger [this .type ]
303309
304- def apply (ontologyPrefix : PrefixNamespace , enumerationNamedElement : UMLEnumerationNamedElement ,
310+ def apply (ontologyPrefix : PrefixNamespace ,
311+ enumerationNamedElement : UMLEnumerationNamedElement ,
305312 enumerationValueNamedElement : UMLEnumerationValueNamedElement ): UMLEnumerationValueIRI =
306313 logger.debug(s " ontologyPrefix.prefixIRI.iri = ${ontologyPrefix.prefixIRI.iri}, " +
307314 s " enumerationValueNamedElement.getName = ${enumerationValueNamedElement.getName} ${Code .source}" )
@@ -432,8 +439,10 @@ object UMLClassIdentity:
432439 classIdentity
433440
434441
435- private def populate (classNamedElement : UMLClassNamedElement , ontologyPrefix : PrefixNamespace ,
436- classIdentity : UMLClassIdentity , label : String ): Unit = {
442+ private def populate (classNamedElement : UMLClassNamedElement ,
443+ ontologyPrefix : PrefixNamespace ,
444+ classIdentity : UMLClassIdentity ,
445+ label : String ): Unit = {
437446 logger.debug(s " classNamedElement= $classNamedElement, ontologyPrefix= $ontologyPrefix, classIdentity= $classIdentity, " +
438447 s " label= $label, ${Code .source}" )
439448 val classIRI : UMLClassIRI = UMLClassIRI (ontologyPrefix, classNamedElement)
@@ -502,8 +511,10 @@ object UMLEnumerationIdentity:
502511 enumerationIdentity
503512
504513
505- private def populate (enumerationNamedElement : UMLEnumerationNamedElement , ontologyPrefix : PrefixNamespace ,
506- enumerationIdentity : UMLEnumerationIdentity , label : String ): Unit = {
514+ private def populate (enumerationNamedElement : UMLEnumerationNamedElement ,
515+ ontologyPrefix : PrefixNamespace ,
516+ enumerationIdentity : UMLEnumerationIdentity ,
517+ label : String ): Unit = {
507518 logger.debug(s " enumerationNamedElement= $enumerationNamedElement, ontologyPrefix= $ontologyPrefix, enumerationIdentity= $enumerationIdentity, " +
508519 s " label= $label, ${Code .source}" )
509520 val enumerationIRI : UMLEnumerationIRI = UMLEnumerationIRI (ontologyPrefix, enumerationNamedElement)
@@ -591,15 +602,45 @@ case class UMLClassAttribute(attributeIdentity: UMLClassAttributeIdentity,
591602case class UMLEnumerationDefinition (definition : String = " " )
592603
593604case class UMLEnumeration (enumeratonIdentity : UMLEnumerationIdentity ,
594- enumerationDefinition : UMLEnumerationDefinition = UMLEnumerationDefinition ())
605+ definition : UMLEnumerationDefinition = UMLEnumerationDefinition ())
595606 extends UMLClassDiagramElement
596607
608+
609+ object UMLEnumeration :
610+ private val logger = Logger [this .type ]
611+
612+ private val enumerationsWithEnumerationValues : mutable.HashMap [UMLEnumerationIdentity , mutable.Set [UMLEnumerationValueIdentity ]] =
613+ mutable.HashMap [UMLEnumerationIdentity , mutable.Set [UMLEnumerationValueIdentity ]]()
614+
615+ def cache (enumerationIdentity : UMLEnumerationIdentity , enumerationValueIdentity : UMLEnumerationValueIdentity ): UMLEnumerationIRI =
616+ val enumerationValues : mutable.Set [UMLEnumerationValueIdentity ] =
617+ enumerationsWithEnumerationValues.getOrElse(enumerationIdentity, mutable.HashSet [UMLEnumerationValueIdentity ]())
618+ enumerationValues += enumerationValueIdentity
619+ enumerationIdentity.enumerationIRI
620+
621+ def find (enumerationIdentity : UMLEnumerationIdentity ): Option [mutable.Set [UMLEnumerationValueIdentity ]] =
622+ enumerationsWithEnumerationValues.get(enumerationIdentity)
623+
624+
597625case class UMLEnumerationValueDefinition (definition : String = " " )
598626
599627case class UMLEnumerationValue (valueIdentity : UMLEnumerationValueIdentity ,
600628 definition : UMLEnumerationValueDefinition = UMLEnumerationValueDefinition ())
601629 extends UMLClassDiagramElement
602630
631+ object UMLEnumerationValue :
632+ private val enumerationValuesByIdentity : mutable.HashMap [UMLEnumerationValueIdentity , UMLEnumerationValue ] =
633+ mutable.HashMap [UMLEnumerationValueIdentity , UMLEnumerationValue ]()
634+
635+ def apply (valueIdentity : UMLEnumerationValueIdentity ,
636+ definition : UMLEnumerationValueDefinition ): UMLEnumerationValue =
637+ val umlEnumerationValue = new UMLEnumerationValue (valueIdentity, definition)
638+ enumerationValuesByIdentity += (valueIdentity -> umlEnumerationValue)
639+ umlEnumerationValue
640+
641+ def find (valueIdentity : UMLEnumerationValueIdentity ): Option [UMLEnumerationValue ] =
642+ enumerationValuesByIdentity.get(valueIdentity)
643+
603644case class UMLClassDiagram (owlOntologyFile : File ,
604645 ontologyIRI : OntologyIRI ,
605646 ontologyPrefix : PrefixNamespace ,
0 commit comments