Class FilterComparisonScope

    • Field Detail

      • eObjectContentFilter

        protected com.google.common.base.Predicate<? super EObject> eObjectContentFilter
        This will be used in order to determine the filter that should be used to filter the EObjects' content list of unnecessary values.
      • resourceContentFilter

        protected com.google.common.base.Predicate<? super EObject> resourceContentFilter
        This will be used in order to determine the filter that should be used to filter the Resources' content list of unnecessary values.
      • resourceSetContentFilter

        protected com.google.common.base.Predicate<? super Resource> resourceSetContentFilter
        This will be used in order to determine the filter that should be used to filter the ResourceSets' content list of unnecessary values.
    • Constructor Detail

      • FilterComparisonScope

        public FilterComparisonScope​(Notifier left,
                                     Notifier right,
                                     Notifier origin)
        This will instantiate a scope with left, right and origin Notifiers defined.
        Parameters:
        left - The left root of this comparison.
        right - The right root of this comparison.
        origin - The common ancestor of left and right. May be null.
    • Method Detail

      • getCoveredEObjects

        public Iterator<? extends EObject> getCoveredEObjects​(Resource resource)
        This will be used by EMF Compare in order to determine the EObjects that it should iterate over.

        Do note that this will only be called once per comparison. EMF Compare expects this to return the whole set of EObjects that should be covered by the comparison when launched on the given Resource.

        This default implementation will return all direct and indirect content of the given Resource, filtering out those EObjects that do not match resourceContentFilter.

        Parameters:
        resource - The resource for which we need to determine all EObjects spanned by the comparison.
        Returns:
        An iterator over the EObjects which are part of this scope.
        See Also:
        IComparisonScope.getCoveredEObjects(org.eclipse.emf.ecore.resource.Resource)
      • getChildren

        public Iterator<? extends EObject> getChildren​(EObject eObject)
        This will be used by EMF Compare in order to know which EObjects should be considered to be part of the comparison scope when it is launched on the given EObject.

        Do note that this will only be called once per comparison on EObjects, and never for comparisons launched on ResourceSets or Resources. EMF Compare expects the whole set of EObject that should be covered by the comparison to be returned by this.

        This default implementation will return all direct and indirect content of the given EObject, filtering out those EObjects that do not match eObjectContentFilter.

        Parameters:
        eObject - The EObject for which we need to determine the comparison scope.
        Returns:
        An iterator over the EObjects which are part of this scope.
        See Also:
        IComparisonScope.getChildren(org.eclipse.emf.ecore.EObject)
      • setEObjectContentFilter

        public void setEObjectContentFilter​(com.google.common.base.Predicate<? super EObject> newContentFilter)
        This can be used to set the filter that should be used to filter the EObjects' content list of unnecessary values. By default, we will use an "always true" predicate : the list won't be filtered out unless this is called with a new filter.
        Parameters:
        newContentFilter - The filter that should be used for EObject content filtering.
      • setResourceContentFilter

        public void setResourceContentFilter​(com.google.common.base.Predicate<? super EObject> resourceContentFilter)
        This can be used to set the filter that should be used to filter the Resources' content list of unnecessary values. By default, we will return an "always true" predicate : the list won't be filtered out unless this is called with a new filter.
        Parameters:
        resourceContentFilter - The filter that should be used for Resource content filtering.
      • setResourceSetContentFilter

        public void setResourceSetContentFilter​(com.google.common.base.Predicate<? super Resource> resourceSetContentFilter)
        This can be used to set the filter that should be used to filter the ResourceSets' content list of unnecessary values. By default, we will return an "always true" predicate : the list won't be filtered out unless this called with a new filter.
        Parameters:
        resourceSetContentFilter - The filter that should be used for ResourceSet content filtering.
      • addUri

        protected <T> void addUri​(T obj)
        Tries and register the URI of the given object as one of this scope's resources. Note that we only consider EObjects and Resources.
        Type Parameters:
        T - Type of this object.
        Parameters:
        obj - eObject for which we
      • addUri

        protected void addUri​(EObject eObject)
        Registers the namespace and resource URI from the given eObject.
        Parameters:
        eObject - The given eObject.
      • addUri

        protected void addUri​(Resource resource)
        Registers the resource URI from the given resource.
        Parameters:
        resource - The given resource.