package org.springframework.roo.classpath;
import java.util.Set;
import org.springframework.roo.classpath.details.ClassOrInterfaceTypeDetails;
import org.springframework.roo.model.JavaType;
import org.springframework.roo.project.maven.Pom;
public interface TypeCache {
void cacheFilePathAgainstTypeIdentifier(String typeFilePath, String typeIdentifier);
void cacheType(String typeFilePath, ClassOrInterfaceTypeDetails cid);
void cacheTypeAgainstModule(Pom pom, JavaType javaType);
Set<String> getAllTypeIdentifiers();
String getPhysicalTypeIdentifier(JavaType javaType);
ClassOrInterfaceTypeDetails getTypeDetails(String mid);
String getTypeIdFromTypeFilePath(String typeFilePath);
Set<String> getTypeNamesForModuleFilePath(String moduleFilePath);
void removeType(String typeIdentifier);
}