コード例 #1
0
        public static IErrorObject CreateErrorObject(
            [NotNull] IObject errorObject, [NotNull] IErrorDataset errorDataset,
            [CanBeNull] IFieldIndexCache fieldIndexCache = null)
        {
            Assert.ArgumentNotNull(errorObject, nameof(errorObject));
            Assert.ArgumentNotNull(errorDataset, nameof(errorDataset));

            switch (errorDataset)
            {
            case ErrorTableDataset dataset:
                return(new ErrorTableObject(errorObject, dataset, fieldIndexCache));

            case ErrorLineDataset dataset:
                return(new ErrorLineObject((IFeature)errorObject, dataset, fieldIndexCache));

            case ErrorMultiPatchDataset dataset:
                return(new ErrorMultiPatchObject((IFeature)errorObject, dataset,
                                                 fieldIndexCache));

            case ErrorMultipointDataset dataset:
                return(new ErrorMultipointObject((IFeature)errorObject, dataset,
                                                 fieldIndexCache));

            case ErrorPolygonDataset dataset:
                return(new ErrorPolygonObject((IFeature)errorObject, dataset, fieldIndexCache));

            default:
                throw new ArgumentOutOfRangeException(
                          $"Unknown IErrorDataset: {errorDataset.GetType()}");
            }
        }
コード例 #2
0
ファイル: VectorObject.cs プロジェクト: sungaoyong/ProSuite
 protected VectorObject([NotNull] IFeature feature,
                        [NotNull] VectorDataset dataset,
                        [CanBeNull] IFieldIndexCache fieldIndexCache)
     : base(feature, dataset, fieldIndexCache)
 {
     Feature = feature;
 }
コード例 #3
0
 public static int GetRequiredFieldIndex(
     [NotNull] IRow row,
     [NotNull] Attribute attribute,
     [CanBeNull] IFieldIndexCache fieldIndexCache = null)
 {
     return(GetRequiredFieldIndex(row.Table, attribute, fieldIndexCache));
 }
コード例 #4
0
 public static int GetFieldIndex([NotNull] ITable table,
                                 [NotNull] AssociationAttribute associationAttribute,
                                 [CanBeNull] IFieldIndexCache fieldIndexCache = null)
 {
     return
         (fieldIndexCache?.GetFieldIndex(table, associationAttribute.Name, null) ??
          GetFieldIndex(table, associationAttribute.Name, null));
 }
コード例 #5
0
 public static int GetFieldIndex([NotNull] ITable table,
                                 [NotNull] ObjectAttribute objectAttribute,
                                 [CanBeNull] IFieldIndexCache fieldIndexCache = null)
 {
     return
         (fieldIndexCache?.GetFieldIndex(table, objectAttribute.Name, objectAttribute.Role) ??
          GetFieldIndex(table, objectAttribute.Name, objectAttribute.Role));
 }
コード例 #6
0
 protected ObjectObject([NotNull] IObject obj,
                        [NotNull] ObjectDataset dataset,
                        [CanBeNull] IFieldIndexCache fieldIndexCache)
 {
     _object          = obj;
     _dataset         = dataset;
     _fieldIndexCache = fieldIndexCache;
 }
コード例 #7
0
        public static T?GetValueFor <T>([NotNull] IRow row,
                                        [NotNull] Attribute attribute,
                                        [CanBeNull] IFieldIndexCache fieldIndexCache)
            where T : struct
        {
            var fieldIndex = GetRequiredFieldIndex(row, attribute, fieldIndexCache);

            return(GdbObjectUtils.ConvertRowValue <T>(row, fieldIndex));
        }
コード例 #8
0
        public static int GetFieldIndex([NotNull] ITable table,
                                        [NotNull] Attribute attribute,
                                        [CanBeNull] IFieldIndexCache fieldIndexCache = null)
        {
            AttributeRole attributeRole = (attribute as ObjectAttribute)?.Role;

            return
                (fieldIndexCache?.GetFieldIndex(table, attribute.Name, attributeRole) ??
                 GetFieldIndex(table, attribute.Name, attributeRole));
        }
コード例 #9
0
        private int GetFieldIndex([NotNull] AttributeRole role,
                                  [CanBeNull] IFieldIndexCache fieldIndexCache)
        {
            const bool roleIsOptional = false;
            int?       result         = GetFieldIndex(role, fieldIndexCache, roleIsOptional);

            if (result == null)
            {
                throw new InvalidOperationException("field index expected");
            }

            return(result.Value);
        }
コード例 #10
0
        private static IssueDatasetWriter CreateIssueWriter(
            [NotNull] IErrorDataset objectDataset,
            [NotNull] IDatasetContext datasetContext,
            [NotNull] IFieldIndexCache fieldIndexCache)
        {
            Assert.ArgumentNotNull(objectDataset, nameof(objectDataset));
            Assert.ArgumentNotNull(datasetContext, nameof(datasetContext));
            Assert.ArgumentNotNull(fieldIndexCache, nameof(fieldIndexCache));

            ITable table = datasetContext.OpenTable(objectDataset);

            return(table == null
                                       ? null
                                       : new IssueDatasetWriter(table, objectDataset, fieldIndexCache));
        }
コード例 #11
0
        /// <summary>
        /// Initializes a new instance of the <see cref="IssueDatasetWriter"/> class.
        /// </summary>
        /// <param name="issueTable">The error table.</param>
        /// <param name="issueObjectDataset">The error object dataset.</param>
        /// <param name="fieldIndexCache">The field index cache.</param>
        public IssueDatasetWriter([NotNull] ITable issueTable,
                                  [NotNull] IErrorDataset issueObjectDataset,
                                  [NotNull] IFieldIndexCache fieldIndexCache)
        {
            Assert.ArgumentNotNull(issueTable, nameof(issueTable));
            Assert.ArgumentNotNull(issueObjectDataset, nameof(issueObjectDataset));
            Assert.ArgumentNotNull(fieldIndexCache, nameof(fieldIndexCache));

            Table = issueTable;
            _issueObjectDataset = issueObjectDataset;
            _fieldIndexCache    = fieldIndexCache;

            _featureClass = Table as IFeatureClass;

            HasM = _featureClass != null && DatasetUtils.HasM(_featureClass);
            HasZ = _featureClass != null && DatasetUtils.HasZ(_featureClass);
        }
コード例 #12
0
        public static int GetRequiredFieldIndex(
            [NotNull] ITable table,
            [NotNull] Attribute attribute,
            [CanBeNull] IFieldIndexCache fieldIndexCache = null)
        {
            int fieldIndex = GetFieldIndex(table, attribute, fieldIndexCache);

            if (fieldIndex < 0)
            {
                _msg.DebugFormat("Missing attribute: {0}", attribute);

                throw new InvalidOperationException(
                          string.Format("Field {0} not found in table {1}",
                                        attribute.Name, DatasetUtils.GetName(table)));
            }

            return(fieldIndex);
        }
コード例 #13
0
        private int?GetFieldIndex([NotNull] AttributeRole role,
                                  [CanBeNull] IFieldIndexCache fieldIndexCache,
                                  bool roleIsOptional)
        {
            ObjectAttribute attribute = _dataset.GetAttribute(role);

            if (attribute == null)
            {
                if (roleIsOptional)
                {
                    return(null);
                }

                throw new ArgumentException(
                          string.Format("Dataset [{0}] has no attribute role [{1}]",
                                        _dataset.Name, role), nameof(role));
            }

            return(AttributeUtils.GetFieldIndex(_object.Class, attribute, fieldIndexCache));
        }
コード例 #14
0
        CreateIssueWritersByGeometryType(
            [NotNull] IVerificationContext verificationContext,
            [NotNull] IFieldIndexCache fieldIndexCache)
        {
            var result = new Dictionary <esriGeometryType, IssueDatasetWriter>();

            foreach (KeyValuePair <esriGeometryType, IErrorDataset> pair in
                     VerificationContextUtils.GetIssueDatasetsByGeometryType(verificationContext))
            {
                IssueDatasetWriter issueWriter = CreateIssueWriter(pair.Value,
                                                                   verificationContext,
                                                                   fieldIndexCache);

                if (issueWriter != null)
                {
                    result.Add(pair.Key, issueWriter);
                }
            }

            return(result);
        }
コード例 #15
0
 /// <summary>
 /// Initializes a new instance of the <see cref="IssueDatasetWriter"/> class.
 /// </summary>
 /// <param name="issueFeatureClass">The error feature class.</param>
 /// <param name="issueObjectDataset">The error object dataset.</param>
 /// <param name="fieldIndexCache">The field index cache.</param>
 public IssueDatasetWriter([NotNull] IFeatureClass issueFeatureClass,
                           [NotNull] IErrorDataset issueObjectDataset,
                           [NotNull] IFieldIndexCache fieldIndexCache)
     : this((ITable)issueFeatureClass, issueObjectDataset, fieldIndexCache)
 {
 }
コード例 #16
0
 public static object GetValueFor([NotNull] IRow row,
                                  [NotNull] Attribute attribute,
                                  [CanBeNull] IFieldIndexCache fieldIndexCache)
 {
     return(row.Value[GetRequiredFieldIndex(row, attribute, fieldIndexCache)]);
 }
コード例 #17
0
 internal ErrorMultipointObject([NotNull] IFeature feature,
                                [NotNull] ErrorMultipointDataset dataset,
                                [CanBeNull] IFieldIndexCache fieldIndexCache)
     : base(feature, dataset, fieldIndexCache)
 {
 }
コード例 #18
0
 /// <summary>
 /// Initializes a new instance of the <see cref="ErrorTableObject"/> class.
 /// </summary>
 /// <param name="row">The row.</param>
 /// <param name="dataset">The dataset.</param>
 /// <param name="fieldIndexCache">The optional field index cache.</param>
 internal ErrorTableObject([NotNull] IRow row,
                           [NotNull] ErrorTableDataset dataset,
                           [CanBeNull] IFieldIndexCache fieldIndexCache)
     : base(row, dataset, fieldIndexCache)
 {
 }
コード例 #19
0
 public static int GetFieldIndex([NotNull] IObjectClass objectClass,
                                 [NotNull] ObjectAttribute objectAttribute,
                                 [CanBeNull] IFieldIndexCache fieldIndexCache = null)
 {
     return(GetFieldIndex((ITable)objectClass, objectAttribute, fieldIndexCache));
 }
コード例 #20
0
 internal ErrorPolygonObject([NotNull] IFeature feature,
                             [NotNull] ErrorPolygonDataset dataset,
                             [CanBeNull] IFieldIndexCache fieldIndexCache)
     : base(feature, dataset, fieldIndexCache)
 {
 }
コード例 #21
0
 protected TableObject([NotNull] IRow obj,
                       [NotNull] TableDataset dataset,
                       [CanBeNull] IFieldIndexCache fieldIndexCache)
     : base((IObject)obj, dataset, fieldIndexCache)
 {
 }