• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package org.robolectric.internal;
2 
3 import java.util.Collections;
4 import java.util.Map;
5 
6 /**
7  * Interface implemented by packages that provide shadows to Robolectric.
8  */
9 @SuppressWarnings("NewApi")
10 public interface ShadowProvider {
11 
12   /**
13    * Reset the static state of all shadows provided by this package.
14    */
reset()15   void reset();
16 
17   /**
18    * Array of Java package names that are shadowed by this package.
19    *
20    * @return  Array of Java package names.
21    */
getProvidedPackageNames()22   String[] getProvidedPackageNames();
23 
24   /**
25    * Return the mapping of class name to shadow name.
26    *
27    * @return Shadow mapping.
28    */
getShadowMap()29   Map<String, String> getShadowMap();
30 
31   /**
32    * Map of framework classes which may be represented by more than one shadow, to be picked
33    * at runtime.
34    *
35    * @return A map from the name of the framework class to the name of its
36    *     {#link org.robolectric.shadow.apiShadowPicker}.
37    */
getShadowPickerMap()38   default Map<String, String> getShadowPickerMap() {
39     return Collections.emptyMap();
40   }
41 }
42