public void firePushStateEvent() {
if (beanStates != null) {//avoid unncessary looping
this.matchState(beanStates.value());
return;
}
BeanStates h = AnnotationUtils.findStatesAnnotation(getClass());
if (h != null) {
this.setStates(h);
this.matchState(h.value());
return;
} else {//only a state annotation is present
BeanState beanState = AnnotationUtils.findStateAnnotation(getClass());
if (beanState != null) {
if (beanState.beanState().equals(this.getBeanState().getStateName())) {