Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 4.0

...

Code Block

/**
 * Since the AIDA IManagedObjects in ITree don't know their own paths,
 * we have to pass the object to the Store. Store must be able to determine
 * the ITree path of the object and path (or some sort of ID) of the corresponding
 * data in the storage
 */ 

public interface IPartialDataStore extends OnDemandStore {

    /**
     * To be used with any simple AIDA object that has no
     * internal structure, like: ICloud, IDataPointSet, IHstogram
     */

    IPatialData readPartialData(IManagedObject aidaObject, int row);


    /**
     * To be used with AIDA objects that has internal structure,
     * like: ITuple
     */

    IComplexPatialData readComplexPartialData(IManagedObject aidaObject, String pathInObject, int[] rows);


    /**
     * Writes partial data to the Store.
     * This method might be called by the implementation of the particular
     * IManagedObject when part of its data is Garbage-Collected and Finalized 
     */

     void writePartialData(IManagedObject mo, IPartialData pd) throws IOException; 


     /**
      * Writes complex partial data to the Store
      * This method might be called by the implementation of the particular
      * IManagedObject when part of its data is Garbage-Collected and Finalized
      */

     void writeComplexPartialData(IManagedObject mo, IComplexPartialData pd) throws IOException;

}


public interface IPatialData {

    int startIndex();
    int endIndex();
    String type();
    Object data();

}

public interface IComplexPatialData {

    int[] startIndices();
    int[] endIndices();
    String pathInObject();
    String type();
    Object data();

}

Wiki MarkupMain problem with this approach is that AIDA object that requested the partial data does not know what is it getting back - it would need to cast generic Object to something specific, like ICloud, double\[\], etc.