< Summary

Class:GDX.DataTables.DataTableBase
Assembly:GDX
File(s):./Packages/com.dotbunny.gdx/GDX/DataTables/DataTableBase.cs
Covered lines:4
Uncovered lines:14
Coverable lines:18
Total lines:791
Line coverage:22.2% (4 of 18)
Covered branches:0
Total branches:0
Covered methods:1
Total methods:1
Method coverage:100% (1 of 1)

Coverage History

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
GetMetaData()0%7.233022.22%

File(s)

./Packages/com.dotbunny.gdx/GDX/DataTables/DataTableBase.cs

#LineLine coverage
 1// Copyright (c) 2020-2024 dotBunny Inc.
 2// dotBunny licenses this file to you under the BSL-1.0 license.
 3// See the LICENSE file in the project root for more information.
 4
 5using UnityEditor;
 6using UnityEngine;
 7
 8namespace GDX.DataTables
 9{
 10    /// <summary>
 11    ///     The base framework of a <see cref="ScriptableObject" /> backed DataTable.
 12    /// </summary>
 13    /// <remarks>
 14    ///     Similar to UE's https://docs.unrealengine.com/5.2/en-US/data-driven-gameplay-elements-in-unreal-engine/.
 15    /// </remarks>
 16    public abstract class DataTableBase : ScriptableObject
 17    {
 18        /// <summary>
 19        ///     A reference to the author-time metadata which will not be included at runtime.
 20        /// </summary>
 21#pragma warning disable IDE1006
 22        // ReSharper disable InconsistentNaming
 23#if UNITY_EDITOR
 24        [SerializeField] internal DataTableMetaData m_MetaData;
 25#else
 26        internal DataTableMetaData m_MetaData;
 27#endif // UNITY_EDITOR
 28        // ReSharper enable InconsistentNaming
 29#pragma warning restore IDE1006
 30
 31
 32        /// <summary>
 33        ///     Add a column.
 34        /// </summary>
 35        /// <param name="columnType">The type of data being stored in the column.</param>
 36        /// <param name="columnName">The user-friendly name of the column.</param>
 37        /// <param name="insertAtColumnIdentifier">
 38        ///     The column identifier to insert the column at, otherwise -1 will place the
 39        ///     column at the end.
 40        /// </param>
 41        /// <returns>The unique column identifier of the created column.</returns>
 42        public abstract int AddColumn(Serializable.SerializableTypes columnType, string columnName,
 43            int insertAtColumnIdentifier = -1);
 44
 45        /// <summary>
 46        ///     Remove a column.
 47        /// </summary>
 48        /// <param name="columnType">The type of data being stored in the column.</param>
 49        /// <param name="columnIdentifier">The known column's identifier.</param>
 50        public abstract void RemoveColumn(Serializable.SerializableTypes columnType, int columnIdentifier = -1);
 51
 52        /// <summary>
 53        ///     Add a row
 54        /// </summary>
 55        /// <param name="rowName">The user-friendly name of the column.</param>
 56        /// <param name="insertAtRowIdentifier">
 57        ///     The row identifier to insert the row at, otherwise -1 will place the row at the
 58        ///     end.
 59        /// </param>
 60        /// <returns>The unique row identifier of the created row.</returns>
 61        public abstract int AddRow(string rowName = null, int insertAtRowIdentifier = -1);
 62
 63        /// <summary>
 64        ///     Remove a row.
 65        /// </summary>
 66        /// <param name="rowIdentifier">The known row's identifier.</param>
 67        public abstract void RemoveRow(int rowIdentifier);
 68
 69        /// <summary>
 70        ///     Get the internally stored data version for the <see cref="DataTableBase" />.
 71        /// </summary>
 72        /// <remarks>
 73        ///     Every time something changes in the table, be it structural or data, this value is changed. This allows
 74        ///     for checks of if cached values need to be re-polled.
 75        /// </remarks>
 76        /// <returns></returns>
 77        public abstract ulong GetDataVersion();
 78
 79        /// <summary>
 80        ///     Get the internally stored structure version for the <see cref="DataTableBase" />.
 81        /// </summary>
 82        /// <remarks>
 83        ///     Think of this as format version, if the internals change and the table needs to be updated this is the i
 84        ///     for old data.
 85        /// </remarks>
 86        /// <returns>The structure version number.</returns>
 87        public abstract int GetStructureVersion();
 88
 89        /// <summary>
 90        ///     Get the current structure version for the <see cref="DataTableBase" /> class itself.
 91        /// </summary>
 92        /// <returns>The structure version number.</returns>
 93        public abstract int GetStructureCurrentVersion();
 94
 95        /// <summary>
 96        ///     Applies migration logic used to upgrade previous implementations of a <see cref="DataTableBase" />.
 97        /// </summary>
 98        /// <param name="currentVersion">The current version of a <see cref="DataTableBase" /> format.</param>
 99        /// <returns>Was the migration successful?</returns>
 100        public abstract bool Migrate(int currentVersion);
 101
 102        /// <summary>
 103        ///     Returns the number of columns in the <see cref="!:ITable" />.
 104        /// </summary>
 105        /// <returns>A count of columns.</returns>
 106        public abstract int GetColumnCount();
 107
 108        /// <summary>
 109        ///     Returns the number of rows in the <see cref="!:ITable" />.
 110        /// </summary>
 111        /// <returns>A count of rows.</returns>
 112        public abstract int GetRowCount();
 113
 114        /// <summary>
 115        ///     Gets/creates the metadata sub-object used to store author-time information with the data table.
 116        /// </summary>
 117        /// <remarks>This is only available in the editor. It will always return null at runtime.</remarks>
 118        /// <returns>The associated metadata for the <see cref="DataTableBase" />.</returns>
 119        public DataTableMetaData GetMetaData()
 99120        {
 121#if UNITY_EDITOR && UNITY_2021_3_OR_NEWER
 99122            if (m_MetaData == null)
 0123            {
 124                // When the asset is created, a pseudo asset sits until a filename is chosen, its not on disk,
 125                // So we dont want to do anything because nothing is real at the time.
 0126                if (!EditorUtility.IsPersistent(this))
 0127                {
 0128                    return null;
 129                }
 130
 131                // Now we can make the meta object
 0132                DataTableMetaData metaDataInstance = CreateInstance<DataTableMetaData>();
 133
 0134                m_MetaData = metaDataInstance;
 0135                m_MetaData.name = "DataTableMetaData_EditorOnly";
 0136                m_MetaData.hideFlags = HideFlags.DontSaveInBuild | HideFlags.HideInHierarchy | HideFlags.NotEditable |
 137                                       HideFlags.HideInInspector;
 138
 0139                AssetDatabase.AddObjectToAsset(metaDataInstance, this);
 140
 0141                EditorUtility.SetDirty(m_MetaData);
 0142                AssetDatabase.SaveAssetIfDirty(m_MetaData);
 143
 0144                EditorUtility.SetDirty(this);
 0145                AssetDatabase.SaveAssetIfDirty(this);
 0146            }
 147
 99148            return m_MetaData;
 149#else
 150            return null;
 151#endif
 99152        }
 153
 154        /// <summary>
 155        ///     Get all rows' <see cref="RowDescription" />; ordered.
 156        /// </summary>
 157        /// <returns>An array of <see cref="RowDescription" />s.</returns>
 158        public abstract RowDescription[] GetAllRowDescriptions();
 159
 160        /// <summary>
 161        ///     Get a <see cref="RowDescription" /> describing a row.
 162        /// </summary>
 163        /// <param name="rowIdentifier">The unique row identifier.</param>
 164        /// <returns>A <see cref="RowDescription" /> for the target row.</returns>
 165        public abstract RowDescription GetRowDescription(int rowIdentifier);
 166
 167        /// <summary>
 168        ///     Get a <see cref="RowDescription" /> describing a row in the specified position.
 169        /// </summary>
 170        /// <param name="order">The ordered index/position.</param>
 171        /// <returns>A <see cref="RowDescription" /> for the target row.</returns>
 172        public abstract RowDescription GetRowDescriptionByOrder(int order);
 173
 174        /// <summary>
 175        ///     Get all columns' <see cref="ColumnDescription" />; ordered.
 176        /// </summary>
 177        /// <returns>An array of <see cref="ColumnDescription" />s.</returns>
 178        public abstract ColumnDescription[] GetAllColumnDescriptions();
 179
 180        /// <summary>
 181        ///     Get a <see cref="ColumnDescription" /> describing a column in the specified position.
 182        /// </summary>
 183        /// <param name="columnIdentifier">The unique column identifier.</param>
 184        /// <returns>A <see cref="ColumnDescription" /> for the target column.</returns>
 185        public abstract ColumnDescription GetColumnDescription(int columnIdentifier);
 186
 187        /// <summary>
 188        ///     Get a <see cref="ColumnDescription" /> describing a column in the specified position.
 189        /// </summary>
 190        /// <param name="order">The ordered index/position.</param>
 191        /// <returns>A <see cref="ColumnDescription" /> for the target column.</returns>
 192        public abstract ColumnDescription GetColumnDescriptionByOrder(int order);
 193
 194        /// <summary>
 195        ///     Get the specified row's order.
 196        /// </summary>
 197        /// <param name="rowIdentifier">The unique row identifier.</param>
 198        /// <returns>The row's order/position.</returns>
 199        public abstract int GetRowOrder(int rowIdentifier);
 200
 201        /// <summary>
 202        ///     Set the specified row's order.
 203        /// </summary>
 204        /// <param name="rowIdentifier">The unique row identifier.</param>
 205        /// <param name="newSortOrder">The ordered index/position.</param>
 206        public abstract void SetRowOrder(int rowIdentifier, int newSortOrder);
 207
 208        /// <summary>
 209        ///     Set the order of rows in the <see cref="DataTableBase" />.
 210        /// </summary>
 211        /// <param name="orderedRowIdentifiers">An array of row unique identifiers, in the order to be set.</param>
 212        public abstract void SetAllRowOrders(int[] orderedRowIdentifiers);
 213
 214        /// <summary>
 215        ///     Set the specified column's order.
 216        /// </summary>
 217        /// <param name="columnIdentifier">The unique column identifier.</param>
 218        /// <returns>The column's order/position.</returns>
 219        public abstract int GetColumnOrder(int columnIdentifier);
 220
 221        /// <summary>
 222        ///     Set the specified column's order.
 223        /// </summary>
 224        /// <param name="columnIdentifier">The unique column identifier.</param>
 225        /// <param name="newSortOrder">The ordered index/position.</param>
 226        public abstract void SetColumnOrder(int columnIdentifier, int newSortOrder);
 227
 228        /// <summary>
 229        ///     Set the order of columns in the <see cref="DataTableBase" />.
 230        /// </summary>
 231        /// <param name="orderedColumnIdentifiers">An array of column unique identifiers, in the order to be set.</param
 232        public abstract void SetAllColumnOrders(int[] orderedColumnIdentifiers);
 233
 234        /// <summary>
 235        ///     Set the type's assembly qualified name for the specified column.
 236        /// </summary>
 237        /// <remarks>
 238        ///     More info can be found at
 239        ///     https://learn.microsoft.com/en-us/dotnet/api/system.type.assemblyqualifiedname?view=net-7.0.
 240        ///     This allows for filtering of the generated fields.
 241        /// </remarks>
 242        /// <param name="columnIdentifier">The unique column identifier.</param>
 243        /// <param name="assemblyQualifiedName">The assembly qualified name.</param>
 244        public abstract void SetTypeNameForColumn(int columnIdentifier, string assemblyQualifiedName);
 245
 246        /// <summary>
 247        ///     Get the type's assembly qualified name for the specified column.
 248        /// </summary>
 249        /// <param name="columnIdentifier">The unique column identifier.</param>
 250        /// <returns>An assembly qualified name.</returns>
 251        public abstract string GetTypeNameForColumn(int columnIdentifier);
 252
 253        /// <summary>
 254        ///     Set the user-friendly name of the identified column.
 255        /// </summary>
 256        /// <param name="columnIdentifier">The unique column identifier.</param>
 257        /// <param name="columnName">The desired user-friendly name for the column.</param>
 258        public abstract void SetColumnName(int columnIdentifier, string columnName);
 259
 260        /// <summary>
 261        ///     Get the user-friendly name of the identified column.
 262        /// </summary>
 263        /// <param name="columnIdentifier">The unique column identifier.</param>
 264        /// <returns>A user-friendly name.</returns>
 265        public abstract string GetColumnName(int columnIdentifier);
 266
 267        /// <summary>
 268        ///     Set the user-friendly name of the identified row.
 269        /// </summary>
 270        /// <param name="rowIdentifier">The unique row identifier.</param>
 271        /// <param name="rowName">The desired user-friendly name for the row.</param>
 272        public abstract void SetRowName(int rowIdentifier, string rowName);
 273
 274        /// <summary>
 275        ///     Get the user-friendly name of the identified row.
 276        /// </summary>
 277        /// <param name="rowIdentifier">The unique row identifier.</param>
 278        /// <returns>A user-friendly name.</returns>
 279        public abstract string GetRowName(int rowIdentifier);
 280
 281        /// <summary>
 282        ///     Get a <see cref="string" /> value from the specified cell.
 283        /// </summary>
 284        /// <param name="rowIdentifier">The unique row identifier.</param>
 285        /// <param name="columnIdentifier">The unique column identifier.</param>
 286        /// <returns>A <see cref="string" /> value.</returns>
 287        public abstract string GetString(int rowIdentifier, int columnIdentifier);
 288
 289        /// <summary>
 290        ///     Get a <see cref="bool" /> value from the specified cell.
 291        /// </summary>
 292        /// <param name="rowIdentifier">The unique row identifier.</param>
 293        /// <param name="columnIdentifier">The unique column identifier.</param>
 294        /// <returns>A <see cref="bool" /> value.</returns>
 295        public abstract bool GetBool(int rowIdentifier, int columnIdentifier);
 296
 297        /// <summary>
 298        ///     Get a <see cref="char" /> value from the specified cell.
 299        /// </summary>
 300        /// <param name="rowIdentifier">The unique row identifier.</param>
 301        /// <param name="columnIdentifier">The unique column identifier.</param>
 302        /// <returns>A <see cref="char" /> value.</returns>
 303        public abstract char GetChar(int rowIdentifier, int columnIdentifier);
 304
 305        /// <summary>
 306        ///     Get am <see cref="int" /> value of an enumeration from the specified cell.
 307        /// </summary>
 308        /// <param name="rowIdentifier">The unique row identifier.</param>
 309        /// <param name="columnIdentifier">The unique column identifier.</param>
 310        /// <returns>An integer value for the enumeration</returns>
 311        public abstract int GetEnumInt(int rowIdentifier, int columnIdentifier);
 312
 313        /// <summary>
 314        ///     Get a <see cref="sbyte" /> value from the specified cell.
 315        /// </summary>
 316        /// <param name="rowIdentifier">The unique row identifier.</param>
 317        /// <param name="columnIdentifier">The unique column identifier.</param>
 318        /// <returns>A <see cref="sbyte" /> value.</returns>
 319        public abstract sbyte GetSByte(int rowIdentifier, int columnIdentifier);
 320
 321        /// <summary>
 322        ///     Get a <see cref="byte" /> value from the specified cell.
 323        /// </summary>
 324        /// <param name="rowIdentifier">The unique row identifier.</param>
 325        /// <param name="columnIdentifier">The unique column identifier.</param>
 326        /// <returns>A <see cref="byte" /> value.</returns>
 327        public abstract byte GetByte(int rowIdentifier, int columnIdentifier);
 328
 329        /// <summary>
 330        ///     Get a <see cref="short" /> value from the specified cell.
 331        /// </summary>
 332        /// <param name="rowIdentifier">The unique row identifier.</param>
 333        /// <param name="columnIdentifier">The unique column identifier.</param>
 334        /// <returns>A <see cref="short" /> value.</returns>
 335        public abstract short GetShort(int rowIdentifier, int columnIdentifier);
 336
 337        /// <summary>
 338        ///     Get a <see cref="ushort" /> value from the specified cell.
 339        /// </summary>
 340        /// <param name="rowIdentifier">The unique row identifier.</param>
 341        /// <param name="columnIdentifier">The unique column identifier.</param>
 342        /// <returns>A <see cref="ushort" /> value.</returns>
 343        public abstract ushort GetUShort(int rowIdentifier, int columnIdentifier);
 344
 345        /// <summary>
 346        ///     Get a <see cref="int" /> value from the specified cell.
 347        /// </summary>
 348        /// <param name="rowIdentifier">The unique row identifier.</param>
 349        /// <param name="columnIdentifier">The unique column identifier.</param>
 350        /// <returns>A <see cref="int" /> value.</returns>
 351        public abstract int GetInt(int rowIdentifier, int columnIdentifier);
 352
 353        /// <summary>
 354        ///     Get a <see cref="uint" /> value from the specified cell.
 355        /// </summary>
 356        /// <param name="rowIdentifier">The unique row identifier.</param>
 357        /// <param name="columnIdentifier">The unique column identifier.</param>
 358        /// <returns>A <see cref="uint" /> value.</returns>
 359        public abstract uint GetUInt(int rowIdentifier, int columnIdentifier);
 360
 361        /// <summary>
 362        ///     Get a <see cref="long" /> value from the specified cell.
 363        /// </summary>
 364        /// <param name="rowIdentifier">The unique row identifier.</param>
 365        /// <param name="columnIdentifier">The unique column identifier.</param>
 366        /// <returns>A <see cref="long" /> value.</returns>
 367        public abstract long GetLong(int rowIdentifier, int columnIdentifier);
 368
 369        /// <summary>
 370        ///     Get a <see cref="ulong" /> value from the specified cell.
 371        /// </summary>
 372        /// <param name="rowIdentifier">The unique row identifier.</param>
 373        /// <param name="columnIdentifier">The unique column identifier.</param>
 374        /// <returns>A <see cref="ulong" /> value.</returns>
 375        public abstract ulong GetULong(int rowIdentifier, int columnIdentifier);
 376
 377        /// <summary>
 378        ///     Get a <see cref="float" /> value from the specified cell.
 379        /// </summary>
 380        /// <param name="rowIdentifier">The unique row identifier.</param>
 381        /// <param name="columnIdentifier">The unique column identifier.</param>
 382        /// <returns>A <see cref="float" /> value.</returns>
 383        public abstract float GetFloat(int rowIdentifier, int columnIdentifier);
 384
 385        /// <summary>
 386        ///     Get a <see cref="double" /> value from the specified cell.
 387        /// </summary>
 388        /// <param name="rowIdentifier">The unique row identifier.</param>
 389        /// <param name="columnIdentifier">The unique column identifier.</param>
 390        /// <returns>A <see cref="double" /> value.</returns>
 391        public abstract double GetDouble(int rowIdentifier, int columnIdentifier);
 392
 393        /// <summary>
 394        ///     Get a <see cref="Vector2" /> struct from the specified cell.
 395        /// </summary>
 396        /// <param name="rowIdentifier">The unique row identifier.</param>
 397        /// <param name="columnIdentifier">The unique column identifier.</param>
 398        /// <returns>A <see cref="Vector2" /> struct.</returns>
 399        public abstract Vector2 GetVector2(int rowIdentifier, int columnIdentifier);
 400
 401        /// <summary>
 402        ///     Get a <see cref="Vector3" /> struct from the specified cell.
 403        /// </summary>
 404        /// <param name="rowIdentifier">The unique row identifier.</param>
 405        /// <param name="columnIdentifier">The unique column identifier.</param>
 406        /// <returns>A <see cref="Vector3" /> struct.</returns>
 407        public abstract Vector3 GetVector3(int rowIdentifier, int columnIdentifier);
 408
 409        /// <summary>
 410        ///     Get a <see cref="Vector4" /> struct from the specified cell.
 411        /// </summary>
 412        /// <param name="rowIdentifier">The unique row identifier.</param>
 413        /// <param name="columnIdentifier">The unique column identifier.</param>
 414        /// <returns>A <see cref="Vector4" /> struct.</returns>
 415        public abstract Vector4 GetVector4(int rowIdentifier, int columnIdentifier);
 416
 417        /// <summary>
 418        ///     Get a <see cref="Vector2Int" /> struct from the specified cell.
 419        /// </summary>
 420        /// <param name="rowIdentifier">The unique row identifier.</param>
 421        /// <param name="columnIdentifier">The unique column identifier.</param>
 422        /// <returns>A <see cref="Vector2Int" /> struct.</returns>
 423        public abstract Vector2Int GetVector2Int(int rowIdentifier, int columnIdentifier);
 424
 425        /// <summary>
 426        ///     Get a <see cref="Vector3Int" /> struct from the specified cell.
 427        /// </summary>
 428        /// <param name="rowIdentifier">The unique row identifier.</param>
 429        /// <param name="columnIdentifier">The unique column identifier.</param>
 430        /// <returns>A <see cref="Vector3Int" /> struct.</returns>
 431        public abstract Vector3Int GetVector3Int(int rowIdentifier, int columnIdentifier);
 432
 433        /// <summary>
 434        ///     Get a <see cref="Quaternion" /> struct from the specified cell.
 435        /// </summary>
 436        /// <param name="rowIdentifier">The unique row identifier.</param>
 437        /// <param name="columnIdentifier">The unique column identifier.</param>
 438        /// <returns>A <see cref="Quaternion" /> struct.</returns>
 439        public abstract Quaternion GetQuaternion(int rowIdentifier, int columnIdentifier);
 440
 441        /// <summary>
 442        ///     Get a <see cref="Rect" /> struct from the specified cell.
 443        /// </summary>
 444        /// <param name="rowIdentifier">The unique row identifier.</param>
 445        /// <param name="columnIdentifier">The unique column identifier.</param>
 446        /// <returns>A <see cref="Rect" /> struct.</returns>
 447        public abstract Rect GetRect(int rowIdentifier, int columnIdentifier);
 448
 449        /// <summary>
 450        ///     Get a <see cref="RectInt" /> struct from the specified cell.
 451        /// </summary>
 452        /// <param name="rowIdentifier">The unique row identifier.</param>
 453        /// <param name="columnIdentifier">The unique column identifier.</param>
 454        /// <returns>A <see cref="RectInt" /> struct.</returns>
 455        public abstract RectInt GetRectInt(int rowIdentifier, int columnIdentifier);
 456
 457        /// <summary>
 458        ///     Get a <see cref="Color" /> struct from the specified cell.
 459        /// </summary>
 460        /// <param name="rowIdentifier">The unique row identifier.</param>
 461        /// <param name="columnIdentifier">The unique column identifier.</param>
 462        /// <returns>A <see cref="Color" /> struct.</returns>
 463        public abstract Color GetColor(int rowIdentifier, int columnIdentifier);
 464
 465        /// <summary>
 466        ///     Get a <see cref="LayerMask" /> struct from the specified cell.
 467        /// </summary>
 468        /// <param name="rowIdentifier">The unique row identifier.</param>
 469        /// <param name="columnIdentifier">The unique column identifier.</param>
 470        /// <returns>A <see cref="LayerMask" /> struct.</returns>
 471        public abstract LayerMask GetLayerMask(int rowIdentifier, int columnIdentifier);
 472
 473        /// <summary>
 474        ///     Get a <see cref="Bounds" /> struct from the specified cell.
 475        /// </summary>
 476        /// <param name="rowIdentifier">The unique row identifier.</param>
 477        /// <param name="columnIdentifier">The unique column identifier.</param>
 478        /// <returns>A <see cref="Bounds" /> struct.</returns>
 479        public abstract Bounds GetBounds(int rowIdentifier, int columnIdentifier);
 480
 481        /// <summary>
 482        ///     Get a <see cref="BoundsInt" /> struct from the specified cell.
 483        /// </summary>
 484        /// <param name="rowIdentifier">The unique row identifier.</param>
 485        /// <param name="columnIdentifier">The unique column identifier.</param>
 486        /// <returns>A <see cref="BoundsInt" /> struct.</returns>
 487        public abstract BoundsInt GetBoundsInt(int rowIdentifier, int columnIdentifier);
 488
 489        /// <summary>
 490        ///     Get a <see cref="Hash128" /> struct from the specified cell.
 491        /// </summary>
 492        /// <param name="rowIdentifier">The unique row identifier.</param>
 493        /// <param name="columnIdentifier">The unique column identifier.</param>
 494        /// <returns>A <see cref="Hash128" /> struct.</returns>
 495        public abstract Hash128 GetHash128(int rowIdentifier, int columnIdentifier);
 496
 497        /// <summary>
 498        ///     Get a <see cref="Gradient" /> object from the specified cell.
 499        /// </summary>
 500        /// <param name="rowIdentifier">The unique row identifier.</param>
 501        /// <param name="columnIdentifier">The unique column identifier.</param>
 502        /// <returns>A <see cref="Gradient" /> object.</returns>
 503        public abstract Gradient GetGradient(int rowIdentifier, int columnIdentifier);
 504
 505        /// <summary>
 506        ///     Get a <see cref="AnimationCurve" /> object from the specified cell.
 507        /// </summary>
 508        /// <param name="rowIdentifier">The unique row identifier.</param>
 509        /// <param name="columnIdentifier">The unique column identifier.</param>
 510        /// <returns>A <see cref="AnimationCurve" /> object.</returns>
 511        public abstract AnimationCurve GetAnimationCurve(int rowIdentifier, int columnIdentifier);
 512
 513        /// <summary>
 514        ///     Get an <see cref="UnityEngine.Object" /> object from the specified cell.
 515        /// </summary>
 516        /// <param name="rowIdentifier">The unique row identifier.</param>
 517        /// <param name="columnIdentifier">The unique column identifier.</param>
 518        /// <returns>An <see cref="UnityEngine.Object" />.</returns>
 519        public abstract Object GetObject(int rowIdentifier, int columnIdentifier);
 520
 521        /// <summary>
 522        ///     Sets the specified cell's <see cref="string" /> value.
 523        /// </summary>
 524        /// <param name="rowIdentifier">The unique row identifier.</param>
 525        /// <param name="columnIdentifier">The unique column identifier.</param>
 526        /// <param name="newValue">The updated value.</param>
 527        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 528        public abstract ulong SetString(int rowIdentifier, int columnIdentifier, string newValue);
 529
 530        /// <summary>
 531        ///     Sets the specified cell's <see cref="bool" /> value.
 532        /// </summary>
 533        /// <param name="rowIdentifier">The unique row identifier.</param>
 534        /// <param name="columnIdentifier">The unique column identifier.</param>
 535        /// <param name="newValue">The updated value.</param>
 536        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 537        public abstract ulong SetBool(int rowIdentifier, int columnIdentifier, bool newValue);
 538
 539        /// <summary>
 540        ///     Sets the specified cell's <see cref="char" /> value.
 541        /// </summary>
 542        /// <param name="rowIdentifier">The unique row identifier.</param>
 543        /// <param name="columnIdentifier">The unique column identifier.</param>
 544        /// <param name="newValue">The updated value.</param>
 545        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 546        public abstract ulong SetChar(int rowIdentifier, int columnIdentifier, char newValue);
 547
 548        /// <summary>
 549        ///     Sets the specified cell's <see cref="sbyte" /> value.
 550        /// </summary>
 551        /// <param name="rowIdentifier">The unique row identifier.</param>
 552        /// <param name="columnIdentifier">The unique column identifier.</param>
 553        /// <param name="newValue">The updated value.</param>
 554        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 555        public abstract ulong SetSByte(int rowIdentifier, int columnIdentifier, sbyte newValue);
 556
 557        /// <summary>
 558        ///     Sets the specified cell's <see cref="byte" /> value.
 559        /// </summary>
 560        /// <param name="rowIdentifier">The unique row identifier.</param>
 561        /// <param name="columnIdentifier">The unique column identifier.</param>
 562        /// <param name="newValue">The updated value.</param>
 563        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 564        public abstract ulong SetByte(int rowIdentifier, int columnIdentifier, byte newValue);
 565
 566        /// <summary>
 567        ///     Sets the specified cell's enumeration value.
 568        /// </summary>
 569        /// <param name="rowIdentifier">The unique row identifier.</param>
 570        /// <param name="columnIdentifier">The unique column identifier.</param>
 571        /// <param name="newValue">The updated value.</param>
 572        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 573        public abstract ulong SetEnumInt(int rowIdentifier, int columnIdentifier, int newValue);
 574
 575        /// <summary>
 576        ///     Sets the specified cell's <see cref="short" /> value.
 577        /// </summary>
 578        /// <param name="rowIdentifier">The unique row identifier.</param>
 579        /// <param name="columnIdentifier">The unique column identifier.</param>
 580        /// <param name="newValue">The updated value.</param>
 581        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 582        public abstract ulong SetShort(int rowIdentifier, int columnIdentifier, short newValue);
 583
 584        /// <summary>
 585        ///     Sets the specified cell's <see cref="ushort" /> value.
 586        /// </summary>
 587        /// <param name="rowIdentifier">The unique row identifier.</param>
 588        /// <param name="columnIdentifier">The unique column identifier.</param>
 589        /// <param name="newValue">The updated value.</param>
 590        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 591        public abstract ulong SetUShort(int rowIdentifier, int columnIdentifier, ushort newValue);
 592
 593        /// <summary>
 594        ///     Sets the specified cell's <see cref="int" /> value.
 595        /// </summary>
 596        /// <param name="rowIdentifier">The unique row identifier.</param>
 597        /// <param name="columnIdentifier">The unique column identifier.</param>
 598        /// <param name="newValue">The updated value.</param>
 599        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 600        public abstract ulong SetInt(int rowIdentifier, int columnIdentifier, int newValue);
 601
 602        /// <summary>
 603        ///     Sets the specified cell's <see cref="uint" /> value.
 604        /// </summary>
 605        /// <param name="rowIdentifier">The unique row identifier.</param>
 606        /// <param name="columnIdentifier">The unique column identifier.</param>
 607        /// <param name="newValue">The updated value.</param>
 608        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 609        public abstract ulong SetUInt(int rowIdentifier, int columnIdentifier, uint newValue);
 610
 611        /// <summary>
 612        ///     Sets the specified cell's <see cref="long" /> value.
 613        /// </summary>
 614        /// <param name="rowIdentifier">The unique row identifier.</param>
 615        /// <param name="columnIdentifier">The unique column identifier.</param>
 616        /// <param name="newValue">The updated value.</param>
 617        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 618        public abstract ulong SetLong(int rowIdentifier, int columnIdentifier, long newValue);
 619
 620        /// <summary>
 621        ///     Sets the specified cell's <see cref="ulong" /> value.
 622        /// </summary>
 623        /// <param name="rowIdentifier">The unique row identifier.</param>
 624        /// <param name="columnIdentifier">The unique column identifier.</param>
 625        /// <param name="newValue">The updated value.</param>
 626        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 627        public abstract ulong SetULong(int rowIdentifier, int columnIdentifier, ulong newValue);
 628
 629        /// <summary>
 630        ///     Sets the specified cell's <see cref="float" /> value.
 631        /// </summary>
 632        /// <param name="rowIdentifier">The unique row identifier.</param>
 633        /// <param name="columnIdentifier">The unique column identifier.</param>
 634        /// <param name="newValue">The updated value.</param>
 635        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 636        public abstract ulong SetFloat(int rowIdentifier, int columnIdentifier, float newValue);
 637
 638        /// <summary>
 639        ///     Sets the specified cell's <see cref="double" /> value.
 640        /// </summary>
 641        /// <param name="rowIdentifier">The unique row identifier.</param>
 642        /// <param name="columnIdentifier">The unique column identifier.</param>
 643        /// <param name="newValue">The updated value.</param>
 644        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 645        public abstract ulong SetDouble(int rowIdentifier, int columnIdentifier, double newValue);
 646
 647        /// <summary>
 648        ///     Sets the specified cell's <see cref="Vector2" /> struct.
 649        /// </summary>
 650        /// <param name="rowIdentifier">The unique row identifier.</param>
 651        /// <param name="columnIdentifier">The unique column identifier.</param>
 652        /// <param name="newStruct">The updated struct.</param>
 653        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 654        public abstract ulong SetVector2(int rowIdentifier, int columnIdentifier, Vector2 newStruct);
 655
 656        /// <summary>
 657        ///     Sets the specified cell's <see cref="Vector3" /> struct.
 658        /// </summary>
 659        /// <param name="rowIdentifier">The unique row identifier.</param>
 660        /// <param name="columnIdentifier">The unique column identifier.</param>
 661        /// <param name="newStruct">The updated struct.</param>
 662        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 663        public abstract ulong SetVector3(int rowIdentifier, int columnIdentifier, Vector3 newStruct);
 664
 665        /// <summary>
 666        ///     Sets the specified cell's <see cref="Vector4" /> struct.
 667        /// </summary>
 668        /// <param name="rowIdentifier">The unique row identifier.</param>
 669        /// <param name="columnIdentifier">The unique column identifier.</param>
 670        /// <param name="newStruct">The updated struct.</param>
 671        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 672        public abstract ulong SetVector4(int rowIdentifier, int columnIdentifier, Vector4 newStruct);
 673
 674        /// <summary>
 675        ///     Sets the specified cell's <see cref="Vector2Int" /> struct.
 676        /// </summary>
 677        /// <param name="rowIdentifier">The unique row identifier.</param>
 678        /// <param name="columnIdentifier">The unique column identifier.</param>
 679        /// <param name="newStruct">The updated struct.</param>
 680        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 681        public abstract ulong SetVector2Int(int rowIdentifier, int columnIdentifier, Vector2Int newStruct);
 682
 683        /// <summary>
 684        ///     Sets the specified cell's <see cref="Vector3Int" /> struct.
 685        /// </summary>
 686        /// <param name="rowIdentifier">The unique row identifier.</param>
 687        /// <param name="columnIdentifier">The unique column identifier.</param>
 688        /// <param name="newStruct">The updated struct.</param>
 689        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 690        public abstract ulong SetVector3Int(int rowIdentifier, int columnIdentifier, Vector3Int newStruct);
 691
 692        /// <summary>
 693        ///     Sets the specified cell's <see cref="Quaternion" /> struct.
 694        /// </summary>
 695        /// <param name="rowIdentifier">The unique row identifier.</param>
 696        /// <param name="columnIdentifier">The unique column identifier.</param>
 697        /// <param name="newStruct">The updated struct.</param>
 698        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 699        public abstract ulong SetQuaternion(int rowIdentifier, int columnIdentifier, Quaternion newStruct);
 700
 701        /// <summary>
 702        ///     Sets the specified cell's <see cref="Rect" /> struct.
 703        /// </summary>
 704        /// <param name="rowIdentifier">The unique row identifier.</param>
 705        /// <param name="columnIdentifier">The unique column identifier.</param>
 706        /// <param name="newStruct">The updated struct.</param>
 707        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 708        public abstract ulong SetRect(int rowIdentifier, int columnIdentifier, Rect newStruct);
 709
 710        /// <summary>
 711        ///     Sets the specified cell's <see cref="RectInt" /> struct.
 712        /// </summary>
 713        /// <param name="rowIdentifier">The unique row identifier.</param>
 714        /// <param name="columnIdentifier">The unique column identifier.</param>
 715        /// <param name="newStruct">The updated struct.</param>
 716        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 717        public abstract ulong SetRectInt(int rowIdentifier, int columnIdentifier, RectInt newStruct);
 718
 719        /// <summary>
 720        ///     Sets the specified cell's <see cref="Color" /> struct.
 721        /// </summary>
 722        /// <param name="rowIdentifier">The unique row identifier.</param>
 723        /// <param name="columnIdentifier">The unique column identifier.</param>
 724        /// <param name="newStruct">The updated struct.</param>
 725        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 726        public abstract ulong SetColor(int rowIdentifier, int columnIdentifier, Color newStruct);
 727
 728        /// <summary>
 729        ///     Sets the specified cell's <see cref="LayerMask" /> struct.
 730        /// </summary>
 731        /// <param name="rowIdentifier">The unique row identifier.</param>
 732        /// <param name="columnIdentifier">The unique column identifier.</param>
 733        /// <param name="newStruct">The updated struct.</param>
 734        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 735        public abstract ulong SetLayerMask(int rowIdentifier, int columnIdentifier, LayerMask newStruct);
 736
 737        /// <summary>
 738        ///     Sets the specified cell's <see cref="Bounds" /> struct.
 739        /// </summary>
 740        /// <param name="rowIdentifier">The unique row identifier.</param>
 741        /// <param name="columnIdentifier">The unique column identifier.</param>
 742        /// <param name="newStruct">The updated struct.</param>
 743        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 744        public abstract ulong SetBounds(int rowIdentifier, int columnIdentifier, Bounds newStruct);
 745
 746        /// <summary>
 747        ///     Sets the specified cell's <see cref="BoundsInt" /> struct.
 748        /// </summary>
 749        /// <param name="rowIdentifier">The unique row identifier.</param>
 750        /// <param name="columnIdentifier">The unique column identifier.</param>
 751        /// <param name="newStruct">The updated struct.</param>
 752        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 753        public abstract ulong SetBoundsInt(int rowIdentifier, int columnIdentifier, BoundsInt newStruct);
 754
 755        /// <summary>
 756        ///     Sets the specified cell's <see cref="Hash128" /> struct.
 757        /// </summary>
 758        /// <param name="rowIdentifier">The unique row identifier.</param>
 759        /// <param name="columnIdentifier">The unique column identifier.</param>
 760        /// <param name="newStruct">The updated struct.</param>
 761        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 762        public abstract ulong SetHash128(int rowIdentifier, int columnIdentifier, Hash128 newStruct);
 763
 764        /// <summary>
 765        ///     Sets the specified cell's <see cref="Gradient" /> object.
 766        /// </summary>
 767        /// <param name="rowIdentifier">The unique row identifier.</param>
 768        /// <param name="columnIdentifier">The unique column identifier.</param>
 769        /// <param name="newObject">The updated object.</param>
 770        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 771        public abstract ulong SetGradient(int rowIdentifier, int columnIdentifier, Gradient newObject);
 772
 773        /// <summary>
 774        ///     Sets the specified cell's <see cref="AnimationCurve" /> object.
 775        /// </summary>
 776        /// <param name="rowIdentifier">The unique row identifier.</param>
 777        /// <param name="columnIdentifier">The unique column identifier.</param>
 778        /// <param name="newObject">The updated object.</param>
 779        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 780        public abstract ulong SetAnimationCurve(int rowIdentifier, int columnIdentifier, AnimationCurve newObject);
 781
 782        /// <summary>
 783        ///     Sets the specified cell's <see cref="UnityEngine.Object" /> object.
 784        /// </summary>
 785        /// <param name="rowIdentifier">The unique row identifier.</param>
 786        /// <param name="columnIdentifier">The unique column identifier.</param>
 787        /// <param name="newObject">The updated object.</param>
 788        /// <returns>The <see cref="DataTableBase" />'s updated data version.</returns>
 789        public abstract ulong SetObject(int rowIdentifier, int columnIdentifier, Object newObject);
 790    }
 791}

Coverage by test methods






Methods/Properties

GetMetaData()