예제 #1
0
        /// <summary>
        /// Creates a clone of the specified instance
        /// </summary>
        /// <param name="prop">The instance to clone.</param>
        /// <returns></returns>
        public static PropertyDefinition Clone(PropertyDefinition prop)
        {
            switch (prop.Type)
            {
            case PropertyDefinitionType.Data:
            {
                var source = (DataPropertyDefinition)prop;
                var dp     = new DataPropertyDefinition(prop.Name, prop.Description);

                dp.DataType        = source.DataType;
                dp.DefaultValue    = source.DefaultValue;
                dp.IsAutoGenerated = source.IsAutoGenerated;
                dp.IsNullable      = source.IsNullable;
                dp.IsReadOnly      = source.IsReadOnly;
                dp.Length          = source.Length;
                dp.Precision       = source.Precision;
                dp.Scale           = source.Scale;

                return(dp);
            }

            case PropertyDefinitionType.Geometry:
            {
                var source = (GeometricPropertyDefinition)prop;
                var gp     = new GeometricPropertyDefinition(prop.Name, prop.Description);

                gp.SpecificGeometryTypes     = source.SpecificGeometryTypes;
                gp.HasElevation              = source.HasElevation;
                gp.HasMeasure                = source.HasMeasure;
                gp.IsReadOnly                = source.IsReadOnly;
                gp.SpatialContextAssociation = source.SpatialContextAssociation;

                return(gp);
            }

            case PropertyDefinitionType.Raster:
            {
                var source = (RasterPropertyDefinition)prop;
                var rp     = new RasterPropertyDefinition(prop.Name, prop.Description);

                rp.DefaultImageXSize         = source.DefaultImageXSize;
                rp.DefaultImageYSize         = source.DefaultImageYSize;
                rp.IsNullable                = source.IsNullable;
                rp.IsReadOnly                = source.IsReadOnly;
                rp.SpatialContextAssociation = source.SpatialContextAssociation;

                return(rp);
            }
            }
            throw new ArgumentException();
        }
예제 #2
0
        /// <summary>
        /// Parses the specified XML node into a Property Definition
        /// </summary>
        /// <param name="node"></param>
        /// <param name="mgr"></param>
        /// <returns></returns>
        public static PropertyDefinition Parse(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
        {
            PropertyDefinition prop = null;
            var nn    = node.Attributes["name"];      //NOXLATE
            var nulln = node.Attributes["minOccurs"]; //NOXLATE

            string name = Utility.DecodeFDOName(nn.Value);
            string desc = string.Empty;

            //Description
            var docNode = node.SelectSingleNode("xs:annotation/xs:documentation", mgr); //NOXLATE

            if (docNode != null)
            {
                desc = docNode.InnerText;
            }

            if (node.Attributes["type"] != null && node.Attributes["type"].Value == "gml:AbstractGeometryType") //NOXLATE
            {
                prop = new GeometricPropertyDefinition(name, desc);
            }
            else if (node["xs:simpleType"] == null) //NOXLATE
            {
                prop = new RasterPropertyDefinition(name, desc);
            }
            else
            {
                if (node["xs:simpleType"] != null) //NOXLATE
                {
                    prop = new DataPropertyDefinition(name, desc);
                }
            }

            if (prop != null)
            {
                prop.ReadXml(node, mgr);
            }
            else
            {
                throw new NotSupportedException(Strings.ErrorUnsupporteFdoSchemaXml);
            }

            return(prop);
        }
예제 #3
0
        /// <summary>
        /// Parses the specified XML node into a Property Definition
        /// </summary>
        /// <param name="node"></param>
        /// <param name="mgr"></param>
        /// <returns></returns>
        public static PropertyDefinition Parse(System.Xml.XmlNode node, System.Xml.XmlNamespaceManager mgr)
        {
            PropertyDefinition prop = null;
            var nn = node.Attributes["name"]; //NOXLATE
            var nulln = node.Attributes["minOccurs"]; //NOXLATE

            string name = Utility.DecodeFDOName(nn.Value);
            string desc = string.Empty;

            //Description
            var docNode = node.SelectSingleNode("xs:annotation/xs:documentation", mgr); //NOXLATE
            if (docNode != null)
                desc = docNode.InnerText;

            if (node.Attributes["type"] != null && node.Attributes["type"].Value == "gml:AbstractGeometryType") //NOXLATE
            {
                prop = new GeometricPropertyDefinition(name, desc);
            }
            else if (node["xs:simpleType"] == null) //NOXLATE
            {
                prop = new RasterPropertyDefinition(name, desc);
            }
            else
            {
                if (node["xs:simpleType"] != null) //NOXLATE
                    prop = new DataPropertyDefinition(name, desc);
            }

            if (prop != null)
                prop.ReadXml(node, mgr);
            else
                throw new NotSupportedException(Strings.ErrorUnsupporteFdoSchemaXml);

            return prop;
        }
예제 #4
0
        /// <summary>
        /// Creates a clone of the specified instance
        /// </summary>
        /// <param name="prop">The instance to clone.</param>
        /// <returns></returns>
        public static PropertyDefinition Clone(PropertyDefinition prop)
        {
            switch (prop.Type)
            {
                case PropertyDefinitionType.Data:
                    {
                        var source = (DataPropertyDefinition)prop;
                        var dp = new DataPropertyDefinition(prop.Name, prop.Description);

                        dp.DataType = source.DataType;
                        dp.DefaultValue = source.DefaultValue;
                        dp.IsAutoGenerated = source.IsAutoGenerated;
                        dp.IsNullable = source.IsNullable;
                        dp.IsReadOnly = source.IsReadOnly;
                        dp.Length = source.Length;
                        dp.Precision = source.Precision;
                        dp.Scale = source.Scale;

                        return dp;
                    }
                case PropertyDefinitionType.Geometry:
                    {
                        var source = (GeometricPropertyDefinition)prop;
                        var gp = new GeometricPropertyDefinition(prop.Name, prop.Description);

                        gp.SpecificGeometryTypes = source.SpecificGeometryTypes;
                        gp.HasElevation = source.HasElevation;
                        gp.HasMeasure = source.HasMeasure;
                        gp.IsReadOnly = source.IsReadOnly;
                        gp.SpatialContextAssociation = source.SpatialContextAssociation;

                        return gp;
                    }
                case PropertyDefinitionType.Raster:
                    {
                        var source = (RasterPropertyDefinition)prop;
                        var rp = new RasterPropertyDefinition(prop.Name, prop.Description);

                        rp.DefaultImageXSize = source.DefaultImageXSize;
                        rp.DefaultImageYSize = source.DefaultImageYSize;
                        rp.IsNullable = source.IsNullable;
                        rp.IsReadOnly = source.IsReadOnly;
                        rp.SpatialContextAssociation = source.SpatialContextAssociation;

                        return rp;
                    }
            }
            throw new ArgumentException();
        }
예제 #5
0
파일: Utility.cs 프로젝트: kanbang/Colt
 private static RasterPropertyDefinition ConvertRasterProperty(MgRasterPropertyDefinition mgRaster)
 {
     var rp = new RasterPropertyDefinition(mgRaster.Name, mgRaster.Description);
     rp.DefaultImageXSize = mgRaster.DefaultImageXSize;
     rp.DefaultImageYSize = mgRaster.DefaultImageYSize;
     rp.IsNullable = mgRaster.Nullable;
     rp.IsReadOnly = mgRaster.ReadOnly;
     #if LOCAL_API
     rp.SpatialContextAssociation = mgRaster.SpatialContextAssociation;
     #endif
     return rp;
 }