Merge pull request #965 from Ali-RS/Ali-RS-patch-1
Added AppStateManager.getState(class, failOnMiss)
This commit is contained in:
commit
f44fdb35e6
@ -210,6 +210,18 @@ public class AppStateManager {
|
|||||||
* @return First attached state that is an instance of stateClass
|
* @return First attached state that is an instance of stateClass
|
||||||
*/
|
*/
|
||||||
public <T extends AppState> T getState(Class<T> 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){
|
synchronized (states){
|
||||||
AppState[] array = getStates();
|
AppState[] array = getStates();
|
||||||
for (AppState state : array) {
|
for (AppState state : array) {
|
||||||
@ -229,6 +241,10 @@ public class AppStateManager {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(failOnMiss) {
|
||||||
|
throw new IllegalArgumentException("State not found for:" + stateClass);
|
||||||
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +142,11 @@ public abstract class BaseAppState implements AppState {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public final <T extends AppState> T getState( Class<T> type ) {
|
public final <T extends AppState> T getState( Class<T> type ) {
|
||||||
return getStateManager().getState(type);
|
return getState( type, false );
|
||||||
|
}
|
||||||
|
|
||||||
|
public final <T extends AppState> T getState( Class<T> type, boolean failOnMiss ) {
|
||||||
|
return getStateManager().getState( type, failOnMiss );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
Loading…
x
Reference in New Issue
Block a user