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());
}
};
}
}