All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.metamodel.facets.FacetFilters Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.facets;

import org.nakedobjects.metamodel.commons.filters.AbstractFilter;
import org.nakedobjects.metamodel.commons.filters.Filter;


public final class FacetFilters {

    private FacetFilters() {}

    /**
     * {@link Filter#accept(Facet) Accepts} everything.
     */
    public static final Filter ANY = new AbstractFilter() {
        @Override
        public boolean accept(final Facet facet) {
            return true;
        }
    };
    /**
     * {@link Filter#accept(Facet) Accepts} nothing.
     */
    public static final Filter NONE = new AbstractFilter() {
        @Override
        public boolean accept(final Facet facet) {
            return false;
        }
    };

    public static Filter isA(final Class superClass) {
        return new AbstractFilter() {
            @Override
            public boolean accept(final Facet facet) {
                if (facet instanceof DecoratingFacet) {
                    final DecoratingFacet decoratingFacet = (DecoratingFacet) facet;
                    return accept(decoratingFacet.getDecoratedFacet());
                }
                return superClass.isAssignableFrom(facet.getClass());
            }
        };
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy