// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/delegator/PrimitiveJsonTypeDelegatorResolver.java
// @SuppressWarnings("unchecked")
// @SuppressFBWarnings("UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR")
// public class PrimitiveJsonTypeDelegatorResolver<T> extends PrimitiveJsonTypeResolver<T> {
// 
//     private final TextToConcreteObjectResolver toObjectResolver;
//     private final AbstractObjectToJsonTypeConverter toJsonResolver;
// 
//     @SuppressWarnings("PMD.ConstructorCallsOverridableMethod")
//     public PrimitiveJsonTypeDelegatorResolver(TextToConcreteObjectResolver toObjectResolver,
//         AbstractObjectToJsonTypeConverter toJsonResolver) {
//         this.toObjectResolver = toObjectResolver;
//         this.toJsonResolver = toJsonResolver;
//         setValueForField(this, "typeWhichCanBeResolved", resolveTypeOfResolver());
//     }
// 
//     @Override
//     public Class<?> resolveTypeOfResolver() {
//         if (toJsonResolver != null) {
//             return toJsonResolver.resolveTypeOfResolver();
//         }
//         return null;
//     }
// 
//     @Override
//     public AbstractJsonType returnConcreteJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         T convertedValue,
//         String propertyKey) {
//         Optional<AbstractJsonType> optional = toJsonResolver.convertToJsonTypeOrEmpty(primitiveJsonTypesResolver,
//             convertedValue,
//             propertyKey);
//         return optional.get();
//     }
// 
//     @Override
//     protected Optional<T> returnConcreteValueWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         String propertyValue,
//         String propertyKey) {
//         Optional<Object> optionalObject = toObjectResolver.returnObjectWhenCanBeResolved(primitiveJsonTypesResolver,
//             propertyValue, propertyKey);
//         return optionalObject.map(o -> (T) o);
//     }
// 
//     @Override
//     public List<Class<?>> getClassesWhichCanResolve() {
//         return toJsonResolver.getClassesWhichCanResolve();
//     }
// }
// 
// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/object/NumberToJsonTypeConverter.java
// public class NumberToJsonTypeConverter extends AbstractObjectToJsonTypeConverter<Number> {
// 
//     @Override
//     public Optional<AbstractJsonType> convertToJsonTypeOrEmpty(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         Number convertedValue,
//         String propertyKey) {
//         return Optional.of(new NumberJsonType(convertedValue));
//     }
// }
// 
// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/string/TextToNumberResolver.java
// public class TextToNumberResolver implements TextToConcreteObjectResolver<Number> {
// 
//     public static Number convertToNumber(String propertyValue) {
//         Number number = convertToNumberFromText(propertyValue);
//         if (number != null && number.toString().equals(propertyValue)) {
//             return number;
//         }
//         return null;
//     }
// 
//     @SuppressWarnings("PMD.EmptyCatchBlock")
//     private static Number convertToNumberFromText(String propertyValue) {
// 
//         try {
//             return getIntegerNumber(propertyValue);
//         } catch (NumberFormatException exc) {
//             // NOTHING TO DO
//         }
//         try {
//             return getDoubleNumber(propertyValue);
//         } catch (NumberFormatException exc) {
//             // NOTHING TO DO
//         }
//         return null;
//     }
// 
//     private static BigInteger getIntegerNumber(String toParse) {
//         return new BigInteger(toParse);
//     }
// 
//     private static BigDecimal getDoubleNumber(String toParse) {
//         return new BigDecimal(toParse);
//     }
// 
//     @Override
//     public Optional<Number> returnObjectWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, String propertyValue, String propertyKey) {
//         return Optional.ofNullable(convertToNumber(propertyValue));
//     }
// }


import pl.jalokim.propertiestojson.resolvers.primitives.delegator.PrimitiveJsonTypeDelegatorResolver;
import pl.jalokim.propertiestojson.resolvers.primitives.object.NumberToJsonTypeConverter;
import pl.jalokim.propertiestojson.resolvers.primitives.string.TextToNumberResolver;
package pl.jalokim.propertiestojson.resolvers.primitives;


@Deprecated
public class NumberJsonTypeResolver extends PrimitiveJsonTypeDelegatorResolver<Number> {

    public NumberJsonTypeResolver() {
// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/delegator/PrimitiveJsonTypeDelegatorResolver.java
// @SuppressWarnings("unchecked")
// @SuppressFBWarnings("UR_UNINIT_READ_CALLED_FROM_SUPER_CONSTRUCTOR")
// public class PrimitiveJsonTypeDelegatorResolver<T> extends PrimitiveJsonTypeResolver<T> {
// 
//     private final TextToConcreteObjectResolver toObjectResolver;
//     private final AbstractObjectToJsonTypeConverter toJsonResolver;
// 
//     @SuppressWarnings("PMD.ConstructorCallsOverridableMethod")
//     public PrimitiveJsonTypeDelegatorResolver(TextToConcreteObjectResolver toObjectResolver,
//         AbstractObjectToJsonTypeConverter toJsonResolver) {
//         this.toObjectResolver = toObjectResolver;
//         this.toJsonResolver = toJsonResolver;
//         setValueForField(this, "typeWhichCanBeResolved", resolveTypeOfResolver());
//     }
// 
//     @Override
//     public Class<?> resolveTypeOfResolver() {
//         if (toJsonResolver != null) {
//             return toJsonResolver.resolveTypeOfResolver();
//         }
//         return null;
//     }
// 
//     @Override
//     public AbstractJsonType returnConcreteJsonType(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         T convertedValue,
//         String propertyKey) {
//         Optional<AbstractJsonType> optional = toJsonResolver.convertToJsonTypeOrEmpty(primitiveJsonTypesResolver,
//             convertedValue,
//             propertyKey);
//         return optional.get();
//     }
// 
//     @Override
//     protected Optional<T> returnConcreteValueWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         String propertyValue,
//         String propertyKey) {
//         Optional<Object> optionalObject = toObjectResolver.returnObjectWhenCanBeResolved(primitiveJsonTypesResolver,
//             propertyValue, propertyKey);
//         return optionalObject.map(o -> (T) o);
//     }
// 
//     @Override
//     public List<Class<?>> getClassesWhichCanResolve() {
//         return toJsonResolver.getClassesWhichCanResolve();
//     }
// }
// 
// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/object/NumberToJsonTypeConverter.java
// public class NumberToJsonTypeConverter extends AbstractObjectToJsonTypeConverter<Number> {
// 
//     @Override
//     public Optional<AbstractJsonType> convertToJsonTypeOrEmpty(PrimitiveJsonTypesResolver primitiveJsonTypesResolver,
//         Number convertedValue,
//         String propertyKey) {
//         return Optional.of(new NumberJsonType(convertedValue));
//     }
// }
// 
// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/string/TextToNumberResolver.java
// public class TextToNumberResolver implements TextToConcreteObjectResolver<Number> {
// 
//     public static Number convertToNumber(String propertyValue) {
//         Number number = convertToNumberFromText(propertyValue);
//         if (number != null && number.toString().equals(propertyValue)) {
//             return number;
//         }
//         return null;
//     }
// 
//     @SuppressWarnings("PMD.EmptyCatchBlock")
//     private static Number convertToNumberFromText(String propertyValue) {
// 
//         try {
//             return getIntegerNumber(propertyValue);
//         } catch (NumberFormatException exc) {
//             // NOTHING TO DO
//         }
//         try {
//             return getDoubleNumber(propertyValue);
//         } catch (NumberFormatException exc) {
//             // NOTHING TO DO
//         }
//         return null;
//     }
// 
//     private static BigInteger getIntegerNumber(String toParse) {
//         return new BigInteger(toParse);
//     }
// 
//     private static BigDecimal getDoubleNumber(String toParse) {
//         return new BigDecimal(toParse);
//     }
// 
//     @Override
//     public Optional<Number> returnObjectWhenCanBeResolved(PrimitiveJsonTypesResolver primitiveJsonTypesResolver, String propertyValue, String propertyKey) {
//         return Optional.ofNullable(convertToNumber(propertyValue));
//     }
// }


// Path: src/main/java/pl/jalokim/propertiestojson/resolvers/primitives/NumberJsonTypeResolver.java
import pl.jalokim.propertiestojson.resolvers.primitives.delegator.PrimitiveJsonTypeDelegatorResolver;
import pl.jalokim.propertiestojson.resolvers.primitives.object.NumberToJsonTypeConverter;
import pl.jalokim.propertiestojson.resolvers.primitives.string.TextToNumberResolver;

package pl.jalokim.propertiestojson.resolvers.primitives;


@Deprecated
public class NumberJsonTypeResolver extends PrimitiveJsonTypeDelegatorResolver<Number> {

    public NumberJsonTypeResolver() {
        super(new TextToNumberResolver(), new NumberToJsonTypeConverter());