Class FileStorageReader

  • All Implemented Interfaces:
    StorageRead

    public class FileStorageReader
    extends java.lang.Object
    implements StorageRead
    Implementation of the StorageRead interface for the filestorage package.
    Author:
    Bruno Dillenseger
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.math.BigInteger eventIteratorKey  
      protected java.util.Map<java.math.BigInteger,​org.ow2.clif.storage.lib.filestorage.FileStorageReader.EventIterator> eventIterators  
      protected java.lang.String testDirbase  
    • Constructor Summary

      Constructors 
      Constructor Description
      FileStorageReader()
      Creates a new access to CLIF storage, using the default storage directory location.
      FileStorageReader​(java.lang.String path, boolean create)
      Creates a new access to CLIF storage
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void closeEventIterator​(java.io.Serializable iteratorKey)
      Discards the iterator associated to the given key, possibly releasing resources.
      long countEvents​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter)
      Counts the number of available events matching a given filter.
      protected java.io.File getBladeDir​(java.lang.String testName, java.lang.String bladeId)  
      java.util.Properties getBladeProperties​(java.lang.String testName, java.lang.String bladeId)
      Gets the java system properties for the given blade from the given test run
      protected java.io.File getEventClassFile​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel)  
      java.lang.String[] getEventFieldLabels​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel)
      Gets the labels of fields hold by a given event type.
      protected java.io.File getEventFile​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel)  
      java.io.Serializable getEventIterator​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter)
      Creates an event iterator.
      BladeEvent[] getEvents​(java.lang.String testName, java.lang.String bladeId, java.lang.String eventTypeLabel, EventFilter filter, long fromIndex, int count)
      Retrieves a given number of events matching a given filter, from a given index.
      BladeEvent[] getNextEvents​(java.io.Serializable iteratorKey, int count)
      Gets next events from the given event iterator.
      protected java.io.File getTestDir​(java.lang.String testName)  
      BladeDescriptor[] getTestPlan​(java.lang.String testName, BladeFilter filter)
      Gets the test plan definition for a given test run name.
      TestDescriptor[] getTests​(TestFilter filter)
      Gets a list of test runs matching a given filter.
      protected boolean isCommentLine​(java.lang.String line)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • eventIterators

        protected java.util.Map<java.math.BigInteger,​org.ow2.clif.storage.lib.filestorage.FileStorageReader.EventIterator> eventIterators
      • eventIteratorKey

        protected java.math.BigInteger eventIteratorKey
      • testDirbase

        protected java.lang.String testDirbase
    • Constructor Detail

      • FileStorageReader

        public FileStorageReader​(java.lang.String path,
                                 boolean create)
                          throws ClifException
        Creates a new access to CLIF storage
        Parameters:
        path - the target storage directory, either relative to the CLIF context's default directory, or absolute. When null, the default storage location is used.
        create - when true, the target storage directory will be created if it does not exist already. When false, the target directory must exist.
        Throws:
        ClifException - the default directory does not exist and the create parameter is false, or the default directory does not exist and could not be created.
        See Also:
        ExecutionContext, FileStorageCommons
    • Method Detail

      • getTestDir

        protected java.io.File getTestDir​(java.lang.String testName)
      • getBladeDir

        protected java.io.File getBladeDir​(java.lang.String testName,
                                           java.lang.String bladeId)
      • getEventFile

        protected java.io.File getEventFile​(java.lang.String testName,
                                            java.lang.String bladeId,
                                            java.lang.String eventTypeLabel)
      • getEventClassFile

        protected java.io.File getEventClassFile​(java.lang.String testName,
                                                 java.lang.String bladeId,
                                                 java.lang.String eventTypeLabel)
      • isCommentLine

        protected boolean isCommentLine​(java.lang.String line)
      • getTests

        public TestDescriptor[] getTests​(TestFilter filter)
                                  throws ClifException
        Description copied from interface: StorageRead
        Gets a list of test runs matching a given filter.
        Specified by:
        getTests in interface StorageRead
        Parameters:
        filter - only tests matching this filter will be retained
        Returns:
        a browser object to browse among available test execution results
        Throws:
        ClifException
      • getTestPlan

        public BladeDescriptor[] getTestPlan​(java.lang.String testName,
                                             BladeFilter filter)
                                      throws ClifException
        Description copied from interface: StorageRead
        Gets the test plan definition for a given test run name.
        Specified by:
        getTestPlan in interface StorageRead
        Parameters:
        testName - the test run name
        filter - retains only blades (injectors, probes) accepted by this filter. If null, all blades are retained.
        Returns:
        an array of descriptors for blades composing the test run and accepted by the optional filter.
        Throws:
        ClifException
      • getEventFieldLabels

        public java.lang.String[] getEventFieldLabels​(java.lang.String testName,
                                                      java.lang.String bladeId,
                                                      java.lang.String eventTypeLabel)
        Description copied from interface: StorageRead
        Gets the labels of fields hold by a given event type.
        Specified by:
        getEventFieldLabels in interface StorageRead
        Parameters:
        testName - the test run name
        bladeId - the blade identifier from the given test run
        eventTypeLabel - the label of the event type
        Returns:
        an array of event field labels provided by the given event type
      • getEventIterator

        public java.io.Serializable getEventIterator​(java.lang.String testName,
                                                     java.lang.String bladeId,
                                                     java.lang.String eventTypeLabel,
                                                     EventFilter filter)
                                              throws ClifException
        Description copied from interface: StorageRead
        Creates an event iterator.
        Specified by:
        getEventIterator in interface StorageRead
        Parameters:
        testName - the test name to retrieve events from
        bladeId - the blade identifier in this test to retrieve events from
        eventTypeLabel - the type label of the retrieved events
        filter - the filter object to be used for event selection. If null, the iterator will return all events. The filter object may throw a NoMoreEvent exception, in which case current iterator step stops and currently selected events are returned.
        Returns:
        the iterator key to be used to iterate on getting events, and then to discard the iterator when done
        Throws:
        ClifException - the given test, blade, or event type could not be found
        See Also:
        StorageRead.getNextEvents(Serializable, int), StorageRead.closeEventIterator(Serializable)
      • closeEventIterator

        public void closeEventIterator​(java.io.Serializable iteratorKey)
        Description copied from interface: StorageRead
        Discards the iterator associated to the given key, possibly releasing resources.
        Specified by:
        closeEventIterator in interface StorageRead
        Parameters:
        iteratorKey - the key for the target event iterator
      • getEvents

        public BladeEvent[] getEvents​(java.lang.String testName,
                                      java.lang.String bladeId,
                                      java.lang.String eventTypeLabel,
                                      EventFilter filter,
                                      long fromIndex,
                                      int count)
                               throws ClifException
        Description copied from interface: StorageRead
        Retrieves a given number of events matching a given filter, from a given index.
        Specified by:
        getEvents in interface StorageRead
        Parameters:
        testName - the test name to retrieve events from
        bladeId - the blade identifier in this test to retrieve events from
        eventTypeLabel - the type label of the retrieved events
        filter - the filter object to be used for event selection. If null, all events are selected. If the filter throws a NoMoreEvent exception, the selection process stops, and currently selected events are returned.
        fromIndex - the index of the first event to be considered (in other words, events in range 0..fromIndex-1 are ignored). If negative and count parameter is greater than zero, then the latest events will be retrieved.
        count - the maximum number of events to retrieve. If negative, the number of retrieved events is not limited.
        Returns:
        selected blade events
        Throws:
        ClifException
      • countEvents

        public long countEvents​(java.lang.String testName,
                                java.lang.String bladeId,
                                java.lang.String eventTypeLabel,
                                EventFilter filter)
                         throws ClifException
        Description copied from interface: StorageRead
        Counts the number of available events matching a given filter.
        Specified by:
        countEvents in interface StorageRead
        Parameters:
        testName - the test name to retrieve events from
        bladeId - the blade identifier in this test to retrieve events from
        eventTypeLabel - the type label of the retrieved events
        filter - the filter object to be used for event selection. If null, all events are counted. Counting stops before completion if the filter object throws a NoMoreEvent exception, in which case count value before exception is returned.
        Returns:
        the number of available blade events matching the provided filter.
        Throws:
        ClifException