package org.archstudio.bna.logics.hints;
import java.io.Serializable;
import java.util.Map;
import org.archstudio.bna.IBNAWorld;
import org.archstudio.bna.IThing;
import org.eclipse.jdt.annotation.Nullable;
public interface IHintRepository {
public static interface HintValue {
public boolean isPresent();
public @Nullable
Object getValue();
}
public @Nullable
Object getContextForThing(IBNAWorld world, IThing thing);
public boolean storeHint(Object context, String name, @Nullable Serializable value);
public boolean removeHint(Object context, String name);
public HintValue getHint(Object context, String name) throws PropertyDecodeException;
public Map<String, HintValue> getHints(Object context) throws PropertyDecodeException;
public void addHintRepositoryChangeListener(IHintRepositoryChangeListener l);
public void removeHintRepositoryChangeListener(IHintRepositoryChangeListener l);
}