2727import java .util .Objects ;
2828import java .util .Optional ;
2929
30- public final class Toggle {
30+ public class Toggle {
3131
3232 private String key ;
3333
@@ -53,7 +53,7 @@ public final class Toggle {
5353
5454 public EvaluationResult eval (FPUser user , Map <String , Toggle > toggles , Map <String , Segment > segments ,
5555 Object defaultValue , int deep ) {
56- EvaluationResult result = createDefaultResult (user , key , defaultValue , "" );
56+ EvaluationResult result = createDisabledResult (user , key , defaultValue );
5757 try {
5858 return doEval (user , toggles , segments , defaultValue , deep );
5959 } catch (PrerequisiteException e ) {
@@ -66,23 +66,23 @@ public EvaluationResult eval(FPUser user, Map<String, Toggle> toggles, Map<Strin
6666 }
6767
6868 public EvaluationResult doEval (FPUser user , Map <String , Toggle > toggles , Map <String , Segment > segments ,
69- Object defaultValue , int deep ) {
69+ Object defaultValue , int depth ) {
7070
7171 String warning = "" ;
7272
7373 if (!enabled ) {
7474 return createDisabledResult (user , this .key , defaultValue );
7575 }
7676
77- if (deep <= 0 ) {
78- throw new PrerequisiteException ("prerequisite deep overflow" );
77+ if (depth <= 0 ) {
78+ throw new PrerequisiteException ("prerequisite depth overflow" );
7979 }
8080
81- if (!prerequisite (user , toggles , segments , deep )) {
82- return createDefaultResult (user , key , defaultValue , warning );
81+ if (!meetPrerequisite (user , toggles , segments , depth )) {
82+ return createDisabledResult (user , key , defaultValue );
8383 }
8484
85- if (rules != null && rules .size () > 0 ) {
85+ if (rules != null && ! rules .isEmpty () ) {
8686 for (int i = 0 ; i < rules .size (); i ++) {
8787 Rule rule = rules .get (i );
8888 HitResult hitResult = rule .hit (user , segments , this .key );
@@ -110,15 +110,16 @@ private EvaluationResult createDefaultResult(FPUser user, String toggleKey, Obje
110110 return defaultResult ;
111111 }
112112
113- private boolean prerequisite (FPUser user , Map <String , Toggle > toggles , Map <String , Segment > segments , int deep ) {
113+ protected boolean meetPrerequisite (FPUser user , Map <String , Toggle > toggles , Map <String , Segment > segments ,
114+ int depth ) {
114115 if (Objects .isNull (prerequisites ) || prerequisites .isEmpty ()) {
115116 return true ;
116117 }
117118 for (Prerequisite prerequisite : prerequisites ) {
118119 Toggle toggle = toggles .get (prerequisite .getKey ());
119120 if (Objects .isNull (toggle ))
120121 throw new PrerequisiteException ("prerequisite not exist: " + this .key );
121- EvaluationResult eval = toggle .doEval (user , toggles , segments , null , deep - 1 );
122+ EvaluationResult eval = toggle .doEval (user , toggles , segments , null , depth - 1 );
122123 if (Objects .isNull (eval .getValue ()))
123124 return false ;
124125 if (!eval .getValue ().equals (prerequisite .getValue ()))
0 commit comments