Skip to content

Commit 19f3286

Browse files
committed
rename InstanceOptions to Options
1 parent 275045e commit 19f3286

5 files changed

Lines changed: 87 additions & 86 deletions

File tree

README.md

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ The SDK can be initialized by passing [datafile](https://featurevisor.com/docs/b
118118

119119
```java
120120
import com.featurevisor.sdk.Featurevisor;
121+
import com.featurevisor.sdk.ChildInstance;
121122
import com.featurevisor.types.DatafileContent;
122123

123124
// Load datafile content
@@ -128,8 +129,8 @@ String datafileContent = "..." // ... load your datafile content
128129
DatafileContent datafile = DatafileContent.fromJson(datafileContent);
129130

130131
// Create SDK instance
131-
Featurevisor f = new Featurevisor(
132-
new Featurevisor.InstanceOptions()
132+
Featurevisor f = Featurevisor.createInstance(
133+
new Featurevisor.Options()
133134
.datafile(datafileContent)
134135
);
135136
```
@@ -170,7 +171,7 @@ Map<String, Object> initialContext = new HashMap<>();
170171
initialContext.put("deviceId", "123");
171172
initialContext.put("country", "nl");
172173

173-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
174+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
174175
.datafile(datafile)
175176
.context(initialContext));
176177
```
@@ -357,7 +358,7 @@ Map<String, Object> anotherFeatureSticky = new HashMap<>();
357358
anotherFeatureSticky.put("enabled", false);
358359
stickyFeatures.put("anotherFeatureKey", anotherFeatureSticky);
359360

360-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
361+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
361362
.datafile(datafile)
362363
.sticky(stickyFeatures));
363364
```
@@ -433,7 +434,7 @@ Setting `debug` level will print out all logs, including `info`, `warn`, and `er
433434
```java
434435
import com.featurevisor.sdk.Logger;
435436

436-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
437+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
437438
.datafile(datafile)
438439
.logLevel(Logger.LogLevel.DEBUG));
439440
```
@@ -457,7 +458,7 @@ Logger customLogger = Logger.createLogger(new Logger.CreateLoggerOptions()
457458
System.out.println("[" + level + "] " + message);
458459
}));
459460

460-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
461+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
461462
.datafile(datafile)
462463
.logger(customLogger));
463464
```
@@ -470,7 +471,7 @@ Logger customLogger = new Logger(Logger.LogLevel.INFO, (level, message, details)
470471
System.out.println("[" + level + "] " + message);
471472
});
472473

473-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
474+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
474475
.datafile(datafile)
475476
.logger(customLogger));
476477
```
@@ -637,7 +638,7 @@ You can register hooks at the time of SDK initialization:
637638
List<Map<String, Object>> hooks = new ArrayList<>();
638639
hooks.add(myCustomHook);
639640

640-
Featurevisor f = new Featurevisor(new Featurevisor.InstanceOptions()
641+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
641642
.datafile(datafile)
642643
.hooks(hooks));
643644
```
@@ -662,7 +663,7 @@ That's where child instances come in handy:
662663
Map<String, Object> childContext = new HashMap<>();
663664
childContext.put("userId", "123");
664665

665-
Featurevisor childF = f.spawn(childContext);
666+
ChildInstance childF = f.spawn(childContext);
666667
```
667668

668669
Now you can pass the child instance where your individual request is being handled, and you can continue to evaluate features targeting that specific user alone:

src/main/java/com/featurevisor/cli/CLI.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -580,7 +580,7 @@ private void test() {
580580
Map<String, Featurevisor> sdkInstancesByEnvironment = new HashMap<>();
581581
for (String environment : environments) {
582582
DatafileContent datafile = datafilesByEnvironment.get(environment);
583-
Featurevisor instance = Featurevisor.createInstance(new Featurevisor.InstanceOptions()
583+
Featurevisor instance = Featurevisor.createInstance(new Featurevisor.Options()
584584
.datafile(datafile)
585585
.logLevel(level));
586586
sdkInstancesByEnvironment.put(environment, instance);
@@ -630,7 +630,7 @@ private void test() {
630630
hooksManager.add(new HooksManager.Hook("at-parameter")
631631
.bucketValue((options) -> (int) (atValue * 1000)));
632632

633-
f = Featurevisor.createInstance(new Featurevisor.InstanceOptions()
633+
f = Featurevisor.createInstance(new Featurevisor.Options()
634634
.datafile(datafile)
635635
.logLevel(level)
636636
.hooks(hooksManager.getAll()));
@@ -709,7 +709,7 @@ private void benchmark() {
709709
Logger.LogLevel level = getLoggerLevel();
710710
Map<String, DatafileContent> datafilesByEnvironment = buildDatafiles(rootDirectoryPath, Arrays.asList(environment));
711711

712-
Featurevisor f = Featurevisor.createInstance(new Featurevisor.InstanceOptions()
712+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
713713
.datafile(datafilesByEnvironment.get(environment))
714714
.logLevel(level));
715715

@@ -772,7 +772,7 @@ private void assessDistribution() {
772772

773773
Map<String, DatafileContent> datafilesByEnvironment = buildDatafiles(rootDirectoryPath, Arrays.asList(environment));
774774

775-
Featurevisor f = Featurevisor.createInstance(new Featurevisor.InstanceOptions()
775+
Featurevisor f = Featurevisor.createInstance(new Featurevisor.Options()
776776
.datafile(datafilesByEnvironment.get(environment))
777777
.logLevel(getLoggerLevel()));
778778

src/main/java/com/featurevisor/sdk/Featurevisor.java

Lines changed: 52 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -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
*/

src/test/java/com/featurevisor/sdk/ChildTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ public void testCreateChildInstance() {
249249
Map<String, Object> parentContext = new HashMap<>();
250250
parentContext.put("appVersion", "1.0.0");
251251

252-
Featurevisor parentInstance = new Featurevisor(new Featurevisor.InstanceOptions()
252+
Featurevisor parentInstance = new Featurevisor(new Featurevisor.Options()
253253
.datafile(datafile)
254254
.context(parentContext));
255255

0 commit comments

Comments
 (0)