| getProperties(String, Properties) |   | 67% |   | 40% | 4 | 6 | 2 | 12 | 0 | 1 |
| getList(String, List) |   | 73% |   | 90% | 1 | 6 | 1 | 17 | 0 | 1 |
| lock(LockMode) |   | 53% |   | 66% | 1 | 3 | 1 | 7 | 0 | 1 |
| unlock(LockMode) |   | 50% |   | 66% | 1 | 3 | 1 | 7 | 0 | 1 |
| lambda$addErrorLogListener$0(ConfigurationErrorEvent) |  | 0% | | n/a | 1 | 1 | 1 | 1 | 1 | 1 |
| convert(Class, String, Object, boolean) |   | 93% |  | 100% | 0 | 5 | 1 | 8 | 0 | 1 |
| checkNonNullValue(String, Object) |   | 66% |  | 100% | 0 | 2 | 1 | 3 | 0 | 1 |
| findConfigurationLookup(ConfigurationInterpolator, ImmutableConfiguration) |   | 95% |   | 66% | 2 | 4 | 1 | 5 | 0 | 1 |
| interpolate(Object) |   | 90% |   | 50% | 1 | 2 | 0 | 2 | 0 | 1 |
| isScalarValue(Object) |   | 87% |   | 50% | 1 | 2 | 0 | 1 | 0 | 1 |
| setSynchronizer(Synchronizer) |   | 87% |   | 50% | 1 | 2 | 0 | 2 | 0 | 1 |
| setDefaultLookups(Collection) |  | 100% |   | 83% | 1 | 4 | 0 | 11 | 0 | 1 |
| clearInternal() |  | 100% |  | 100% | 0 | 6 | 0 | 17 | 0 | 1 |
| getAndConvertProperty(Class, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| checkDefaultValueArray(Class, Object) |  | 100% |  | 100% | 0 | 4 | 0 | 4 | 0 | 1 |
| getCollection(Class, String, Collection, Collection) |  | 100% |  | 100% | 0 | 3 | 0 | 6 | 0 | 1 |
| cloneInterpolator(AbstractConfiguration) |  | 100% |   | 50% | 1 | 2 | 0 | 8 | 0 | 1 |
| setParentInterpolator(ConfigurationInterpolator) |  | 100% |   | 75% | 1 | 3 | 0 | 6 | 0 | 1 |
| setPrefixLookups(Map) |  | 100% |   | 75% | 1 | 3 | 0 | 6 | 0 | 1 |
| AbstractConfiguration() |  | 100% | | n/a | 0 | 1 | 0 | 8 | 0 | 1 |
| interpolatedConfiguration() |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| handleDefaultCollection(Collection, Collection) |  | 100% |  | 100% | 0 | 3 | 0 | 7 | 0 | 1 |
| getEncodedString(String, ConfigurationDecoder) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| installInterpolator(Map, Collection) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$setProperty$16(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| lambda$addProperty$1(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| getString(String, String) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| lambda$clearProperty$5(String) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| append(Configuration) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| contains(Iterator, Object) |  | 100% |  | 100% | 0 | 3 | 0 | 4 | 0 | 1 |
| convertToArray(Class, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| copy(Configuration) |  | 100% |  | 100% | 0 | 2 | 0 | 5 | 0 | 1 |
| getEncodedString(String) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| getList(Class, String, List) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| sizeInternal() |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| lambda$clear$4() |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| encodeForCopy(Object) |  | 100% |  | 100% | 0 | 2 | 0 | 3 | 0 | 1 |
| getBoolean(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getByte(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getDouble(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getFloat(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getInt(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getLong(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getShort(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setPropertyInternal(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 5 | 0 | 1 |
| throwMissingPropertyException(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getStringArray(String) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| getDuration(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setConversionHandler(ConversionHandler) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| setListDelimiterHandler(ListDelimiterHandler) |  | 100% |  | 100% | 0 | 2 | 0 | 4 | 0 | 1 |
| syncRead(FailableSupplier, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| addPropertyInternal(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| containsKey(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| containsValue(Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getKeys(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| syncReadValue(Object, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 3 | 0 | 1 |
| lambda$copy$8(Configuration, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$append$3(Configuration, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addProperty(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| encodeListForCopy(Collection) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBigDecimal(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBigDecimal(String, BigDecimal) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBigInteger(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBigInteger(String, BigInteger) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBoolean(String, Boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getByte(String, Byte) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDouble(String, Double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDuration(String, Duration) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFloat(String, Float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getInteger(String, Integer) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getKeys(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getKeysInternal(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLong(String, Long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getShort(String, Short) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getString(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| initLogger(ConfigurationLogger) |  | 100% |  | 100% | 0 | 2 | 0 | 2 | 0 | 1 |
| isEmpty() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setProperty(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| size() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| syncRead(Runnable, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| syncWrite(FailableRunnable, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 4 | 0 | 1 |
| clearProperty(String) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| get(Class, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| get(Class, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getBoolean(String, boolean) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getByte(String, byte) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getCollection(Class, String, Collection) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getDouble(String, double) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getFloat(String, float) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getInt(String, int) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getKeys() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getKeysInternal(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getList(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLong(String, long) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getProperty(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getShort(String, short) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| subset(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$interpolatedConfiguration$14(AbstractConfiguration, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getList$12(List, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| addErrorLogListener() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| clear() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| getArray(Class, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getArray(Class, String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getList(Class, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| interpolate(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getInterpolator() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getProperties(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| immutableSubset(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| installDefaultInterpolator() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setInterpolator(ConfigurationInterpolator) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$getKeys$11(String, String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$containsValue$7(Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$containsKey$6(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$addPropertyInternal$2(String, Object) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| beginRead(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| beginWrite(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| endRead() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| endWrite() |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| findConfigurationLookup(ConfigurationInterpolator) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| setConfigurationDecoder(ConfigurationDecoder) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setLogger(ConfigurationLogger) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| setThrowExceptionOnMissing(boolean) |  | 100% | | n/a | 0 | 1 | 0 | 2 | 0 | 1 |
| lambda$isEmpty$15() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getProperty$13(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getKeys$10(String) |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getConfigurationDecoder() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getConversionHandler() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getListDelimiterHandler() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getLogger() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| getSynchronizer() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| isThrowExceptionOnMissing() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |
| lambda$getKeys$9() |  | 100% | | n/a | 0 | 1 | 0 | 1 | 0 | 1 |