...
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 IDescribable { string Caption { get; set; } string Description { get; set; } } public interface IValueDefinition : IDescribable { Type ValueType { get; } bool DescribesSameAs(IValueDefinition otherValueDefinition); } public interface IArgument : IValueDefinition { object Value { get; set; } bool ReadOnly { get; } }
Suggestion about pull / loop approach, LinkableComponent
Code Block |
---|
public interface ILinkableComponent
{
LinkableComponentStatus Status { get; }
void Initialize();
void Validate();
void Update();
void Finish();
IList<IInputItem> InputItems { get; }
IList<IOutputItem> OutputItems { get; }
IList<IOutputDecorator> OutputDecorators { get; }
// (another discussion) filtered data
// get's values from the specified component
IMatrix GetValues(IInputExchangeItem query);
//
// when this property is set to true
//
// default value is false (allow cascade calls, pull-driven)
//
bool CascadeUpdateCallsDisabled { get; set; }
}
public interface IInputItem : IExchangeItem
{
IMatrix Values { get; set; }
}
public interface IOutputItem : IExchangeItem
{
IMatrix Values { get; }
}
// =================================== pull approach
var triggerExchangeItem = component.OutputItems[0];
triggerComponent.GetValues(triggerExchangeItem);
// =================================== loop approach
while(!allComponentsAreFinished)
{
foreach(var component in components)
{
if(component.Status != LinkableComponentStatus.Finished)
{
component.Update();
}
}
}
// current
public interface IMatrix : IList
{
int Rows { get; }
int Columns { get; }
object GetValue(int row, int column);
void SetValue(object value, int row, int column);
object[,] GetValues(int startRow, int endRow, int startColumn, int endColumn);
void SetValues(object[,] values, int startRow, int endRow, int startColumn, int endColumn);
}
|
5. Release 2.0 plan
5.1. Documentation / basic / changes
...