| package org.qi4j.api.query.grammar; |
| |
| import org.qi4j.api.composite.Composite; |
| import org.qi4j.api.property.Property; |
| |
| /** |
| * Property not null Specification. |
| */ |
| public class PropertyNotNullSpecification<T> |
| extends ExpressionSpecification |
| { |
| private PropertyFunction<T> property; |
| |
| public PropertyNotNullSpecification( PropertyFunction<T> property ) |
| { |
| this.property = property; |
| } |
| |
| public PropertyFunction<T> property() |
| { |
| return property; |
| } |
| |
| @Override |
| public boolean satisfiedBy( Composite item ) |
| { |
| Property<T> prop = property.map( item ); |
| |
| if( prop == null ) |
| { |
| return false; |
| } |
| |
| return prop.get() != null; |
| } |
| |
| @Override |
| public String toString() |
| { |
| return property.toString() + "is not null"; |
| } |
| } |