Versions Compared

Key

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

...

  1. Question: what does isAvailable() mean in case of multiple consumers. Do all consumers need to have the same time(s)?
    1. Leave in for now, review after more implementation, one suggestion of modification bool isAvailable(whosAsking);
    2. (warning) Will be discussed later during the meeting, Stef will show an example of using isAvailable(whosAsking);
  2. Question: Collection or Set instead of List for (In|Out)putExchangeItems in LC?
    1. It will be ICollection (thumbs up) .
  3. Question: Introduce IState instead of Object? This will emphasize the relation between IManageState and IPersistentState. Additional suggestion: IPersistentState extends IState.
    (b.t.w: makePersistent / readPersistentState are wrong names, should be something like getAsByteStream)
    1. Gena has discussed with Rob between last and current meeting. After some discussion the final result (thumbs up) is described on: Suggestion about changed to state management
  4. To be discussed: Introduce generics in IOutputItem.Values()? i.e. weakly typed via <T>
    1. (thumbs down) We will not introduce generics in the standard. However, they could be used in the SDK.
  5. Remark: Working with providers/consumers, we should take care that such a circularity might give garbage collection problems. After a short discussion, we see no real general way so solve this risk, so it has been decided that we should leave this up to the Garbage Collector.
    • Point noted, no specific agreement as to solution
  6. (thumbs up) We will introduce something like OpenMIException : Exception. However, first we will have a detailed look at the guidelines for introducing custom exceptions in both .Net and Java: . Rob K. has added a page for this, Guidelines for introducing custom exceptions. It now includes Java suggestions, (warning) Gena will add .Net suggestions.

3.3 Suggestions for the states and possible transitions between the states of the ILinkableComponent

...

3.4 Limitations of time representation in OpenMI (by W. de Winter (wim.dewinter@wur.nl))

The Limitations of time representation was discussed as part of the time issue, see 3.6.2.

3.5 More suggestions on v2.0 changes

...

  • IIdentity has been split in IIdentifiable and IDescribable. Some interfaces already have been derived from IIdentifiable and/or IDescribable** (question) At some stage, we should check all interfaces on whether to derive from IIdentifiable and/or IDescribable or not.
    • (warning) (thumbs up) At this meeting, we should check have checked that IIdentifiable and/or IDescribable are not used as seperate entities.
  • 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 to come up with proposal for next meeting '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;}
            }
        }
        
  • Using empty Temporal and ElementSet in the Input items.
    See http://public.wldelft.nl/display/OPENMI/Empty+Sets+in+the+Input+Items+-+Element+set+changing+in+time
  • Changing of the ElementSet during the time and different Times (steps) for different Elements
    • For the Time can be probably solved by missing values

...

Code Block
java
java
titleOriginal 1.4 situation
  public interface ITime
  {
  }
  public interface ITimeStamp : ITime
  {
      double ModifiedJulianDay {get;}
  }
  public interface ITimeSpan : ITime
  {
      ITimeStamp Start { get; }
      ITimeStamp End   { get; }
  }

Anchor
timeIssue
timeIssue
3.6.2 Platform specific time or Modified Julian?

Adrian suggested that we incorporate as less platform specific things in the Standard as possible. This also holds for Lists and events. (question) We will be put the issue on the agenda for next meeting.
After some detailed discussion on the .Net.DateTime/Java.Date versus the MJD implementation, we have reached a conclusion (thumbs up) : We will keep using the Modified Julian Day.
We should take into consideration whether we want to support a c++ version of the standard in the future.

4. Decorators

The decorators were discussed thouroughly, and we came up with some extensions to the standard.

5. OATC Procedures

We will keep track of a wish list for version 3.0.

...