/// <summary>
        /// Converts a uml method to a DmML method by moving the supported content
        /// </summary>
        /// <param name="uml">Uml to be used</param>
        /// <param name="dmMl">DmML to be used</param>
        public static void Convert(_UML uml, DmML dmMl)
        {
            // Sets the classes
            dmMl.__NamedElement = uml.CommonStructure.__NamedElement;
            dmMl.__Class = uml.StructuredClassifiers.__Class;
            dmMl.__Property = uml.Classification.__Property;

            // Sets the attributes
            dmMl.NamedElement.Name = _UML._CommonStructure._NamedElement.name;
            dmMl.Class.Attribute = _UML._Classification._Classifier.attribute;
        }
 public ClassWrapper(IElement element, DmML dmml)
 {
     _element = element ?? new MofElement(_dmml?.__Class, null);
     _dmml = dmml;
 }
 public ClassWrapper(DmML dmml)
 {
     _dmml = dmml;
     _element = new MofElement(_dmml?.__Class, null);
 }
        /// <summary>
        ///     Performs a full bootstrap by reading in the uml class
        /// </summary>
        /// <param name="paths">Paths storing the uml information</param>
        /// <param name="dataLayerLogic">The datalayer logic to be used</param>
        /// <param name="dataLayer">The datalayer to be filled before the bootstrap itself</param>
        /// <returns>The instance of the bootstrapper</returns>
        public static Bootstrapper PerformFullBootstrap(
            FilePaths paths,
            IDataLayerLogic dataLayerLogic,
            IDataLayer dataLayer)
        {
            var factory = new MofFactory();
            var umlExtent = new MofUriExtent("datenmeister:///uml");
            var mofExtent = new MofUriExtent("datenmeister:///mof");
            var primitiveExtent = new MofUriExtent("datenmeister:///prototypes");
            var loader = new SimpleLoader(factory);
            loader.Load(primitiveExtent, paths.PathPrimitive);
            loader.Load(umlExtent, paths.PathUml);
            loader.Load(mofExtent, paths.PathMof);

            // Assigns the extents to the datalayer
            if (dataLayer != null && dataLayerLogic != null)
            {
                dataLayerLogic.AssignToDataLayer(mofExtent, dataLayer);
                dataLayerLogic.AssignToDataLayer(umlExtent, dataLayer);
                dataLayerLogic.AssignToDataLayer(primitiveExtent, dataLayer);
                dataLayerLogic.Create<FillTheMOF, _MOF>(dataLayer);
                dataLayerLogic.Create<FillTheUML, _UML>(dataLayer);
                dataLayerLogic.Create<FillThePrimitiveTypes, _PrimitiveTypes>(dataLayer);

                var dmml = new DmML();
                UmlToDmMLConverter.Convert(dataLayerLogic.Get<_UML>(dataLayer), dmml);
                dataLayerLogic.Set(dataLayer, dmml);
            }
            else
            {
                // To support the creation of _MOF and _UML, we need to have datalayers and their logic
                throw new InvalidOperationException("datalayers or dataLayerLogic is null");
            }

            // Now do the bootstrap
            var bootStrapper = new Bootstrapper(primitiveExtent, umlExtent, mofExtent, dataLayerLogic);
            bootStrapper.Strap();
            return bootStrapper;
        }
 public AttributeWrapper(IElement element, DmML dmml)
 {
     _element = element;
     _dmml = dmml;
 }
 public AttributeWrapper(DmML dmml)
 {
     _dmml = dmml;
     _element = new MofElement(_dmml?.__Property, null);
 }