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.Registry; import com.framsticks.params.ValueParam; import com.framsticks.params.types.ProcedureParam; import com.framsticks.util.StateFunctor; import com.framsticks.util.dispatching.Dispatcher; import com.framsticks.util.dispatching.Future; import com.framsticks.util.dispatching.Joinable; public interface Instance 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(InstanceListener listener); public void removeListener(InstanceListener listener); public void notifyOfFetch(Path path); public FramsClass getInfoFromCache(String id); public void putInfoIntoCache(FramsClass framclass); public void resolve(Path path, Future future); /** This is part of the Instance interface. * */ public void fetchValue(Path path, ValueParam param, StateFunctor stateFunctor); /** This is part of the Instance interface. * */ public void fetchValues(Path path, StateFunctor stateFunctor); /** This is part of the Instance interface. * */ public void call(Path path, ProcedureParam param, Object[] arguments, Future future); public void storeValue(Path path, ValueParam param, Object value, StateFunctor stateFunctor); public void fetchInfo(Path path, Future future); public Path create(Path path); }