Class RepositoryBuilder

  • All Implemented Interfaces:
    IEventSinkFactory

    class RepositoryBuilder
    extends java.lang.Object
    implements IEventSinkFactory
    Bridge class from event sink to repository. Since this class does not pass on events to another event sink, it must always be the last sink in a chain.
    • Constructor Detail

      • RepositoryBuilder

        RepositoryBuilder()
    • Method Detail

      • create

        public IEventSink create​(java.lang.String identifier,
                                 java.lang.String label,
                                 java.lang.String[] category,
                                 java.lang.String description,
                                 java.util.List<ValueField> dataStructure)
        Description copied from interface: IEventSinkFactory
        Create a new event sink for an event type. This method will be called one or more times for every event type present in the Flight Recording.

        The implementation should have a subfactory that has been saved during instantiation with the IParserExtension.getEventSinkFactory call.

        The create call takes event type metadata which can optionally be modified before calling the create method of the subfactory to get a subsink. Note that create may be called multiple times on the subfactory to set up a case where a single input event type can be split into multiple output event types.

        The returned event sink is used to receive and optionally modify event data. This data is then passed on to the subsink.

        Implementations of this method must be thread safe.

        Specified by:
        create in interface IEventSinkFactory
        Parameters:
        identifier - event type ID
        label - human readable name for the event type
        category - a category path for the event type
        description - human readable description of the event type
        dataStructure - metadata for the event fields
        Returns:
        an event sink
      • createEventTypeEntry

        private static RepositoryBuilder.EventTypeEntry createEventTypeEntry​(java.lang.String identifier,
                                                                             java.lang.String label,
                                                                             java.lang.String[] category,
                                                                             java.lang.String description,
                                                                             java.util.List<ValueField> dataStructure)
      • flush

        public void flush()
        Description copied from interface: IEventSinkFactory
        Called when all events have been sent to the event sinks. Make sure that all pending events have been processed before returning from this call.

        The implementation should have a subfactory. flush must be called on that just before returning.

        If no flush operations need to be done, then simply call flush on the subfactory.

        Specified by:
        flush in interface IEventSinkFactory