|
|
|
@ -210,6 +210,18 @@ public class AppStateManager { |
|
|
|
|
* @return First attached state that is an instance of stateClass |
|
|
|
|
*/ |
|
|
|
|
public <T extends AppState> T getState(Class<T> stateClass){ |
|
|
|
|
return getState(stateClass, false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
* Returns the first state that is an instance of subclass of the specified class. |
|
|
|
|
* @param <T> |
|
|
|
|
* @param stateClass |
|
|
|
|
* @param failOnMiss |
|
|
|
|
* @return First attached state that is an instance of stateClass. If failOnMiss is true |
|
|
|
|
* then an IllegalArgumentException is thrown if the state is not attached. |
|
|
|
|
*/ |
|
|
|
|
public <T extends AppState> T getState(Class<T> stateClass, boolean failOnMiss){ |
|
|
|
|
synchronized (states){ |
|
|
|
|
AppState[] array = getStates(); |
|
|
|
|
for (AppState state : array) { |
|
|
|
@ -229,6 +241,10 @@ public class AppStateManager { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if(failOnMiss) { |
|
|
|
|
throw new IllegalArgumentException("State not found for:" + stateClass); |
|
|
|
|
} |
|
|
|
|
return null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|