Class ThreeWaySubscriber

    • Constructor Detail

      • ThreeWaySubscriber

        protected ThreeWaySubscriber​(ThreeWaySynchronizer synchronizer)
        Create a three-way subscriber that uses the given synchronizer to manage the synchronization state of local resources and their variants
        Parameters:
        synchronizer - the three-way synchronizer for this subscriber
    • Method Detail

      • getResourceComparator

        public final IResourceVariantComparator getResourceComparator()
        Description copied from class: Subscriber
        Returns the comparison criteria that will be used by the sync info created by this subscriber.
        Specified by:
        getResourceComparator in class Subscriber
        Returns:
        the comparator to use when computing sync states for this subscriber.
      • syncStateChanged

        public void syncStateChanged​(IResource[] resources)
        Description copied from interface: ISynchronizerChangeListener
        Notification of synchronization state changes for the given resources. Clients must query the ThreeWaySynchronizer that generated this event to determine the new synchronization state.
        Specified by:
        syncStateChanged in interface ISynchronizerChangeListener
        Parameters:
        resources - the resources whose synchronization state has changed
      • isSupervised

        public boolean isSupervised​(IResource resource)
                             throws TeamException
        Returns false for resources that are not children of a subscriber root, are ignored by the subscriber's synchronizer or are ignored by the Team.ignoreHist(IResource). Returns true otherwise.
        Specified by:
        isSupervised in class Subscriber
        Parameters:
        resource - the resource being tested
        Returns:
        true if this resource is supervised, and false otherwise
        Throws:
        TeamException
        See Also:
        Subscriber.isSupervised(IResource)
      • getSynchronizer

        public ThreeWaySynchronizer getSynchronizer()
        Return the three-way synchronizer of this subscriber.
        Returns:
        the three-way synchronizer of this subscriber.
      • getResourceVariant

        public abstract IResourceVariant getResourceVariant​(IResource resource,
                                                            byte[] bytes)
                                                     throws TeamException
        Create the resource variant for the given local resource from the given bytes. The bytes are those that were previously returned from a call to IResourceVariant#asBytes().
        Parameters:
        resource - the local resource
        bytes - the bytes that identify a variant of the resource
        Returns:
        the resource variant handle recreated from the bytes
        Throws:
        TeamException
      • createRemoteTree

        protected abstract ThreeWayRemoteTree createRemoteTree()
        Create the three-way remote tree which provides access to the remote bytes in the three-way synchronizer. This method is invoked once when the remote tree is first accessed. The returned object is cached and reused on subsequent accesses.
        Returns:
        the remote tree
      • handleRootChanged

        protected void handleRootChanged​(IResource resource,
                                         boolean added)
        Convenience method that can be used by subclasses to notify listeners when a root is added or removed from the subscriber. The added parameter should be true if the root was added and false if it was removed.
        Parameters:
        resource - the added or removed root
        added - true if the root was added and false if it was removed.