/* * Copyright 2013 Guidewire Software, Inc. */ package gw.lang.reflect.gs; import gw.lang.reflect.IMethodInfo; import gw.lang.reflect.IPropertyInfo; import gw.lang.reflect.IType; import gw.lang.reflect.RefreshRequest; import java.util.Collection; import java.util.List; import java.util.Map; public interface IEnhancementIndex { void maybeLoadEnhancementIndex(); void refreshedTypes(RefreshRequest request); void addEnhancementMethods( IType typeToEnhance, Collection<IMethodInfo> methodsToAddTo ); void addEnhancementProperties(IType typeToEnhance, Map<CharSequence, IPropertyInfo> propertyInfosToAddTo, boolean caseSensitive); List<? extends IGosuEnhancement> getEnhancementsForType( IType gosuClass ); void removeEntry( IGosuEnhancement enhancement ); void addEntry( IType enhancedType, IGosuEnhancement enhancement ); String getOrphanedEnhancement(String typeName); }