@@ -35,10 +35,52 @@ public class Featurevisor {
3535 emptyDatafile .setFeatures (new HashMap <>());
3636 }
3737
38+ /**
39+ * Factory methods
40+ */
41+ public static Featurevisor createInstance (Options options ) {
42+ if (options == null ) {
43+ options = new Options ();
44+ }
45+ return new Featurevisor (options );
46+ }
47+
48+ public static Featurevisor createInstance () {
49+ return createInstance (new Options ());
50+ }
51+
52+ public static Featurevisor createInstance (com .featurevisor .types .DatafileContent datafile ) {
53+ return createInstance (new Options ().datafile (datafile ));
54+ }
55+
56+ public static Featurevisor createInstance (String datafileString ) {
57+ return createInstance (new Options ().datafileString (datafileString ));
58+ }
59+
60+ public static Featurevisor createInstance (Map <String , Object > context ) {
61+ return createInstance (new Options ().context (context ));
62+ }
63+
64+ public static Featurevisor createInstance (Logger .LogLevel logLevel ) {
65+ return createInstance (new Options ().logLevel (logLevel ));
66+ }
67+
68+ public static Featurevisor createInstance (Logger logger ) {
69+ return createInstance (new Options ().logger (logger ));
70+ }
71+
72+ public static Featurevisor createInstance (Map <String , Object > sticky , boolean isSticky ) {
73+ if (isSticky ) {
74+ return createInstance (new Options ().sticky (sticky ));
75+ } else {
76+ return createInstance (new Options ().context (sticky ));
77+ }
78+ }
79+
3880 /**
3981 * Options for creating an instance
4082 */
41- public static class InstanceOptions {
83+ public static class Options {
4284 private DatafileContent datafile ;
4385 private String datafileString ;
4486 private Map <String , Object > context ;
@@ -47,7 +89,7 @@ public static class InstanceOptions {
4789 private Map <String , Object > sticky ;
4890 private List <HooksManager .Hook > hooks ;
4991
50- public InstanceOptions () {}
92+ public Options () {}
5193
5294 // Getters
5395 public DatafileContent getDatafile () { return datafile ; }
@@ -68,37 +110,37 @@ public InstanceOptions() {}
68110 public void setHooks (List <HooksManager .Hook > hooks ) { this .hooks = hooks ; }
69111
70112 // Builder pattern methods
71- public InstanceOptions datafile (DatafileContent datafile ) {
113+ public Options datafile (DatafileContent datafile ) {
72114 this .datafile = datafile ;
73115 return this ;
74116 }
75117
76- public InstanceOptions datafileString (String datafileString ) {
118+ public Options datafileString (String datafileString ) {
77119 this .datafileString = datafileString ;
78120 return this ;
79121 }
80122
81- public InstanceOptions context (Map <String , Object > context ) {
123+ public Options context (Map <String , Object > context ) {
82124 this .context = context ;
83125 return this ;
84126 }
85127
86- public InstanceOptions logLevel (Logger .LogLevel logLevel ) {
128+ public Options logLevel (Logger .LogLevel logLevel ) {
87129 this .logLevel = logLevel ;
88130 return this ;
89131 }
90132
91- public InstanceOptions logger (Logger logger ) {
133+ public Options logger (Logger logger ) {
92134 this .logger = logger ;
93135 return this ;
94136 }
95137
96- public InstanceOptions sticky (Map <String , Object > sticky ) {
138+ public Options sticky (Map <String , Object > sticky ) {
97139 this .sticky = sticky ;
98140 return this ;
99141 }
100142
101- public InstanceOptions hooks (List <HooksManager .Hook > hooks ) {
143+ public Options hooks (List <HooksManager .Hook > hooks ) {
102144 this .hooks = hooks ;
103145 return this ;
104146 }
@@ -152,7 +194,7 @@ public OverrideOptions flagEvaluation(Evaluation flagEvaluation) {
152194 /**
153195 * Constructor
154196 */
155- public Featurevisor (InstanceOptions options ) {
197+ public Featurevisor (Options options ) {
156198 // from options
157199 if (options .getContext () != null ) {
158200 this .context = new HashMap <>(options .getContext ());
@@ -194,48 +236,6 @@ public Featurevisor(InstanceOptions options) {
194236 this .logger .info ("Featurevisor SDK initialized" , null );
195237 }
196238
197- /**
198- * Factory methods
199- */
200- public static Featurevisor createInstance (InstanceOptions options ) {
201- if (options == null ) {
202- options = new InstanceOptions ();
203- }
204- return new Featurevisor (options );
205- }
206-
207- public static Featurevisor createInstance () {
208- return createInstance (new InstanceOptions ());
209- }
210-
211- public static Featurevisor createInstance (com .featurevisor .types .DatafileContent datafile ) {
212- return createInstance (new InstanceOptions ().datafile (datafile ));
213- }
214-
215- public static Featurevisor createInstance (String datafileString ) {
216- return createInstance (new InstanceOptions ().datafileString (datafileString ));
217- }
218-
219- public static Featurevisor createInstance (Map <String , Object > context ) {
220- return createInstance (new InstanceOptions ().context (context ));
221- }
222-
223- public static Featurevisor createInstance (Logger .LogLevel logLevel ) {
224- return createInstance (new InstanceOptions ().logLevel (logLevel ));
225- }
226-
227- public static Featurevisor createInstance (Logger logger ) {
228- return createInstance (new InstanceOptions ().logger (logger ));
229- }
230-
231- public static Featurevisor createInstance (Map <String , Object > sticky , boolean isSticky ) {
232- if (isSticky ) {
233- return createInstance (new InstanceOptions ().sticky (sticky ));
234- } else {
235- return createInstance (new InstanceOptions ().context (sticky ));
236- }
237- }
238-
239239 /**
240240 * Set log level
241241 */
0 commit comments