Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • IArgument needs a mechanism for identifying the type of argument e.g. File, Path, int double etc Very usful for providing customised GUI functionality
    • (question) Adrian's proposal is below
      • Code Block
        namespace OpenMI.Standard
        {
            public enum EArgType
            {
                String = 0, // default
                Bool,
                Int,
                Double,
                Path, // presummed to exist and accessable
                FilePath, // presummed to exist and accessable
                PathNew,
                FilePathNew,
                XML, // Rob: can be used together with a schema for complex argument data
                MIME, // Rob: might be useful to pass in images, or text documents, etc.
            }
        
            /// <summary>
            /// The IArgument interface defines a key - value pair. If the property ReadOnly is
            /// false the value is editable otherwise it is read-only.
            /// </summary>
            public interface IArgument : IDescribable
            {
                /// <summary>
                /// Type that string value represents and can be converted to
                /// </summary>
                EArgType ValueType { get; }
        
        	/// <summary>
                /// The key (string) in key-value pair.
        	/// </summary>
        	string Key {get;}
        
        	/// <summary>
                /// <para>The value (double) in key-value pair.</para>
                ///
                /// <para>If the ReadOnly property is true and the property is attempted to be changed
                /// from outside an exception must be thrown.</para>
        	/// </summary>
        	string Value { get; set; }
        
        	/// <summary>
                /// Defines whether the Values property may be edited from outside.
        	/// </summary>
        	bool ReadOnly {get;}
            }
        }
        

Current version:

Code Block
java
java

    public interface IArgument : IDescribable
    {
        string Key { get; }
        string Value { get; set; }
        bool ReadOnly { get; }
    }

Proposed change to cover types:

Code Block
java
java

    public interface IArgument : IDescribable
    {
        string Key { get; }
        Type ValueType { get; }
        object Value { get; set; }
        bool ReadOnly { get; }
    }

5. Release 2.0 plan

5.1. Documentation / basic / changes

...