package com.framsticks.core; import javax.annotation.Nonnull; import com.framsticks.params.AccessInterface; import com.framsticks.params.CompositeParam; import com.framsticks.params.FramsClass; import com.framsticks.params.PrimitiveParam; import com.framsticks.params.Registry; import com.framsticks.params.types.ProcedureParam; import com.framsticks.util.dispatching.Dispatcher; import com.framsticks.util.dispatching.Future; import com.framsticks.util.dispatching.Joinable; public interface Tree extends Dispatcher, Joinable { public @Nonnull Node getRoot(); public @Nonnull void setRoot(Node node); public @Nonnull AccessInterface prepareAccess(CompositeParam param); public void takeAllFrom(Registry source); public void addListener(TreeListener listener); public void removeListener(TreeListener listener); public void notifyOfFetch(Path path); public FramsClass getInfoFromCache(String id); public void putInfoIntoCache(FramsClass framclass); public void resolve(Path path, Future future); public void get(Path path, PrimitiveParam param, Mode mode, Future future); public void get(Path path, Mode mode, Future future); public void call(Path path, ProcedureParam param, Object[] arguments, Future future); public void set(Path path, PrimitiveParam param, Object value, Future future); public void info(Path path, Future future); public Path create(Path path); }