001package io.ebean; 002 003import java.util.Set; 004 005/** 006 * Provides paths and properties for an object graph that can be used to control what parts of the object graph 007 * is fetching (select and fetch clauses) and also can be used to control JSON marshalling (what parts of the object 008 * graph are included in the JSON). 009 */ 010public interface FetchPath { 011 012 /** 013 * Return true if the path is included in this FetchPath. 014 */ 015 boolean hasPath(String path); 016 017 /** 018 * Return the properties at the given path. 019 */ 020 Set<String> getProperties(String path); 021 022 /** 023 * Apply the fetch path to the query. 024 */ 025 <T> void apply(Query<T> query); 026}