package javax.baja.registry; import javax.baja.agent.AgentInfo; import javax.baja.agent.AgentList; import javax.baja.naming.UnknownSchemeException; import javax.baja.sys.BAbsTime; import javax.baja.sys.BModule; import javax.baja.sys.ModuleNotFoundException; import javax.baja.sys.Type; import javax.baja.sys.TypeNotFoundException; import javax.baja.util.BTypeSpec; import javax.baja.util.Version; public interface Registry { TypeInfo[] getAdapters(TypeInfo typeInfo, TypeInfo typeInfo2); AgentList getAgents(TypeInfo typeInfo); TypeInfo[] getConcreteTypes(TypeInfo typeInfo); String getDef(String str); String getDef(String str, String str2); String[] getDefs(); String[] getDefs(String str); String[] getFileExtensions(); String[] getFileExtensions(TypeInfo typeInfo); TypeInfo getFileTypeForExtension(String str); BAbsTime getLastBuildTime(); LexiconInfo getLexicon(String str, String str2, String str3); LexiconInfo[] getLexicons(); LexiconInfo[] getLexicons(String str); LexiconInfo[] getLexicons(String str, String str2); ModuleInfo getModule(String str) throws ModuleNotFoundException; ModuleInfo[] getModules(); TypeInfo getOrdScheme(String str) throws UnknownSchemeException; String[] getOrdSchemes(); AgentList getSpecificAgents(TypeInfo typeInfo); TypeInfo getType(String str) throws TypeNotFoundException; TypeInfo[] getTypes(); TypeInfo[] getTypes(TypeInfo typeInfo); boolean isAgent(TypeInfo typeInfo, TypeInfo typeInfo2); boolean isOrdScheme(String str); boolean isSpecificAgent(TypeInfo typeInfo, TypeInfo typeInfo2); BModule synthesizeModule(String str, Version version, String str2, Version version2, String str3); Type synthesizeType(BTypeSpec bTypeSpec, String str, TypeInfo typeInfo, TypeInfo[] typeInfoArr, AgentInfo[] agentInfoArr, boolean z, boolean z2); }