Details

    • Type: Improvement Improvement
    • Status: Closed Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.4.3
    • Fix Version/s: 1.4.3
    • Component/s: data
    • Labels:
      None
    • Number of attachments :
      2

      Description

      Our current GumTree data model may require refactoring for making the data collaboration simplier. It seems we need a single project that combines errorpropagation, fitting and data I/O. Datastructure will remain site specific.

        Activity

        Hide
        Norman Xiong added a comment -

        The following will be considered according to collaboration comments:
        1. Group:getGroups() and Group:getDataItems() should return explicit types, List<Group> for example.
        2. Use prefix 'I' in all the interfaces.
        3. Add Container and Dictionary patterns in the utilities package.
        4. Separate Factory class from the interface package, which will allow developer to use different implementations.

        Show
        Norman Xiong added a comment - The following will be considered according to collaboration comments: 1. Group:getGroups() and Group:getDataItems() should return explicit types, List<Group> for example. 2. Use prefix 'I' in all the interfaces. 3. Add Container and Dictionary patterns in the utilities package. 4. Separate Factory class from the interface package, which will allow developer to use different implementations.
        Hide
        Norman Xiong added a comment -

        Questions have yet been addressed:

        Why not set classes like NcArray, NcIndex, NcIteratorIndex, NcArrayIterator as a default implementation. Keeping interfaces Array, Index, IteratorIndex and ArrayIterator permit plug-in developers having a specific implementation.
        <Question about packaging>

        As the plug-in knows the meaning of the data structure, it could also be possible for it to generate a dictionary according to the instantiated Dataset.
        In the GumTreeDataModel branch we have developed we set a new method in Group that permits to generate the dictionary on the fly.
        <Still hard to decide how the API looks like>

        Class Container should be able to return the Group or DataItem object corresponding to the given key. Such a method permits collecting some more information belonging to a key. For instance scanning attributes, or getting DataItem in neighbourhood.
        <Dictionary and container utilities can be in a higher layer of service. For example, in our plan we want to move the dictionary into a different package that depends on the GDM model, as well as the container service. >

        Show
        Norman Xiong added a comment - Questions have yet been addressed: Why not set classes like NcArray, NcIndex, NcIteratorIndex, NcArrayIterator as a default implementation. Keeping interfaces Array, Index, IteratorIndex and ArrayIterator permit plug-in developers having a specific implementation. <Question about packaging> As the plug-in knows the meaning of the data structure, it could also be possible for it to generate a dictionary according to the instantiated Dataset. In the GumTreeDataModel branch we have developed we set a new method in Group that permits to generate the dictionary on the fly. <Still hard to decide how the API looks like> Class Container should be able to return the Group or DataItem object corresponding to the given key. Such a method permits collecting some more information belonging to a key. For instance scanning attributes, or getting DataItem in neighbourhood. <Dictionary and container utilities can be in a higher layer of service. For example, in our plan we want to move the dictionary into a different package that depends on the GDM model, as well as the container service. >
        Hide
        Norman Xiong added a comment -

        The interfaces and implementations are done.
        Further work will be to switch the dependency from old version to new version in related features.

        Show
        Norman Xiong added a comment - The interfaces and implementations are done. Further work will be to switch the dependency from old version to new version in related features.
        Hide
        Tony Lam added a comment -

        Updated UML diagram from Norman

        Show
        Tony Lam added a comment - Updated UML diagram from Norman

          People

          • Assignee:
            Norman Xiong
            Reporter:
            Tony Lam
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: