+
+ private static final class Factory extends BaseTypeFactory.WithEnum<RealBaseType, Double> {
+ @Override
+ RealBaseType create(final JsonNode typeDefinition) {
+ // FIXME: is asLong() appropriate here?
+ final JsonNode typeMaxNode = typeDefinition.get("maxReal");
+ final double max = typeMaxNode != null ? typeMaxNode.asLong() : Double.MAX_VALUE;
+
+ final JsonNode typeMinNode = typeDefinition.get("minReal");
+ final double min = typeMinNode != null ? typeMinNode.asLong() : Double.MIN_VALUE;
+
+ final JsonNode typeEnumNode = typeDefinition.get("enum");
+ final ImmutableSet<Double> enums = typeEnumNode != null ? parseEnums(typeEnumNode) : null;
+
+ // TODO: improve accuracy here -- requires understanding the FIXME above
+ return typeMinNode == null && typeMaxNode == null && enums == null ? SINGLETON
+ : new RealBaseType(min, max, enums);
+ }
+
+ @Override
+ Double getEnumValue(final JsonNode jsonEnum) {
+ return jsonEnum.asDouble();
+ }
+ }
+}