1   
2   package dev.metaschema.core.metapath.item.node;
3   
4   import dev.metaschema.core.metapath.item.IItem;
5   import edu.umd.cs.findbugs.annotations.Nullable;
6   
7   /**
8    * This feature interface represents an item that has no associated value data.
9    * <p>
10   * This will occur when an {@link IItem} represents a Metaschema definition or
11   * instance that is not associated with data. This is typical when constructing
12   * items for querying a Metaschema directly, instead of content which will
13   * always have data.
14   */
15  public interface IFeatureNoDataValuedItem extends IItem {
16    @Override
17    @Nullable
18    default Object getValue() {
19      // no value
20      return null;
21    }
22  
23    @Override
24    default boolean hasValue() {
25      // no value
26      return false;
27    }
28  }