package org.qi4j.runtime.structure; import org.qi4j.api.common.Visibility; import org.qi4j.api.composite.ModelDescriptor; import org.qi4j.functional.Specification; /** * TODO */ public class VisibilitySpecification implements Specification<ModelDescriptor> { public static final Specification<ModelDescriptor> MODULE = new VisibilitySpecification( Visibility.module ); public static final Specification<ModelDescriptor> LAYER = new VisibilitySpecification( Visibility.layer ); public static final Specification<ModelDescriptor> APPLICATION = new VisibilitySpecification( Visibility.application ); private Visibility visibility; public VisibilitySpecification( Visibility visibility ) { this.visibility = visibility; } @Override public boolean satisfiedBy( ModelDescriptor item ) { return item.visibility().ordinal() >= visibility.ordinal(); } }