public override void ElementAdded(ElementAddedEventArgs e)
        {
            PrimitiveDataTypeCollection dataContractPrimitiveCollection = e.ModelElement as PrimitiveDataTypeCollection;

            if (dataContractPrimitiveCollection == null)
            {
                return;
            }

            DataContractModel root = dataContractPrimitiveCollection.DataContractModel;

            if (root != null &&
                root.ImplementationTechnology != null)
            {
                ExtensionProviderHelper.AttachObjectExtender(dataContractPrimitiveCollection, root.ImplementationTechnology);
            }

            if (string.IsNullOrEmpty(dataContractPrimitiveCollection.ItemType))
            {
                dataContractPrimitiveCollection.ItemType = typeof(string).FullName;
            }

            if (String.IsNullOrEmpty(dataContractPrimitiveCollection.Namespace))
            {
                dataContractPrimitiveCollection.Namespace = ArtifactLinkHelper.DefaultNamespace(e.ModelElement);
            }

            UpdateDataContractCollectionType(dataContractPrimitiveCollection, CollectionTypes.Values[CollectionTypes.ListKey]);
        }
        /// <summary>
        /// Gets the artifact link.
        /// </summary>
        /// <param name="modelElement">The model element.</param>
        /// <returns></returns>
        protected ArtifactLink GetArtifactLink(ModelElement modelElement)
        {
            ArtifactLink link = ArtifactLinkHelper.GetFirstArtifactLink(modelElement);

            if (link != null)
            {
                return(link);
            }
            throw new NotImplementedException(Properties.Resources.ArtifactLinkNotImplemented);
        }