You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.2 KiB
82 lines
2.2 KiB
package com.jayway.jsonpath; |
|
|
|
import com.jayway.jsonpath.spi.JsonProvider; |
|
import com.jayway.jsonpath.spi.JsonProviderFactory; |
|
|
|
import java.util.Arrays; |
|
import java.util.Collections; |
|
import java.util.EnumSet; |
|
import java.util.Set; |
|
|
|
import static org.apache.commons.lang3.Validate.notNull; |
|
|
|
/** |
|
* User: kalle |
|
* Date: 8/30/13 |
|
* Time: 12:05 PM |
|
*/ |
|
public class Configuration { |
|
|
|
|
|
private final JsonProvider provider; |
|
private final EnumSet<Option> options; |
|
|
|
private Configuration(JsonProvider provider, EnumSet<Option> options) { |
|
notNull(provider, "provider can not be null"); |
|
notNull(options, "options can not be null"); |
|
this.provider = provider; |
|
this.options = options; |
|
} |
|
|
|
public Configuration provider(JsonProvider provider){ |
|
return Configuration.builder().jsonProvider(provider).options(options).build(); |
|
} |
|
|
|
public JsonProvider getProvider() { |
|
return provider; |
|
} |
|
|
|
public Configuration options(Option... options){ |
|
return Configuration.builder().jsonProvider(provider).options(options).build(); |
|
} |
|
|
|
public Set<Option> getOptions() { |
|
return Collections.unmodifiableSet(options); |
|
} |
|
|
|
public static Configuration defaultConfiguration(){ |
|
return new Configuration(JsonProviderFactory.createProvider(), EnumSet.noneOf(Option.class)); |
|
} |
|
|
|
public static ConfigurationBuilder builder(){ |
|
return new ConfigurationBuilder(); |
|
} |
|
|
|
public static class ConfigurationBuilder { |
|
|
|
private JsonProvider provider; |
|
private EnumSet<Option> options = EnumSet.noneOf(Option.class); |
|
|
|
public ConfigurationBuilder jsonProvider(JsonProvider provider) { |
|
this.provider = provider; |
|
return this; |
|
} |
|
|
|
public ConfigurationBuilder options(Option... flags) { |
|
this.options.addAll(Arrays.asList(flags)); |
|
return this; |
|
} |
|
|
|
public ConfigurationBuilder options(Set<Option> options) { |
|
this.options.addAll(options); |
|
return this; |
|
} |
|
|
|
public Configuration build(){ |
|
if(provider == null){ |
|
provider = JsonProviderFactory.createProvider(); |
|
} |
|
return new Configuration(provider, options); |
|
} |
|
} |
|
}
|
|
|