Skip to content

Commit

Permalink
Added ST_Buffer tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sheinbergon committed Oct 10, 2022
1 parent db3df0d commit c0c52ad
Showing 1 changed file with 21 additions and 27 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -19,8 +19,8 @@ interface Value<V> {
enum Sides implements Value<Sides> {
LEFT, RIGHT, BOTH;

public Sides value() {
return this;
public static Sides valueFrom(final @Nonnull String value) {
return Sides.valueOf(value.toUpperCase());
}
}

Expand All @@ -29,31 +29,31 @@ enum JoinStyles implements Value<JoinStyles> {
MITRE(BufferParameters.JOIN_MITRE),
ROUND(BufferParameters.JOIN_ROUND);

public static JoinStyles valueFrom(final @Nonnull String value) {
return JoinStyles.valueOf(value.toUpperCase());
}

final int value;

JoinStyles(final int value) {
this.value = value;
}

public JoinStyles value() {
return this;
}
}

enum CapStyles implements Value<CapStyles> {
FLAT(BufferParameters.CAP_FLAT),
ROUND(BufferParameters.CAP_ROUND),
SQUARE(BufferParameters.CAP_SQUARE);

public static CapStyles valueFrom(final @Nonnull String value) {
return CapStyles.valueOf(value.toUpperCase());
}

final int value;

CapStyles(final int value) {
this.value = value;
}

public CapStyles value() {
return this;
}
}

final class IntValue implements Value<Integer> {
Expand All @@ -67,10 +67,6 @@ public static Value.IntValue parse(final @Nonnull String string) {
private IntValue(final int value) {
this.value = value;
}

public Integer value() {
return value;
}
}

final class DoubleValue implements Value<Double> {
Expand All @@ -84,13 +80,7 @@ public static Value.DoubleValue parse(final @Nonnull String string) {
private DoubleValue(final double value) {
this.value = value;
}

public Double value() {
return value;
}
}

V value();
}

public enum Parameters {
Expand All @@ -109,7 +99,7 @@ Value.IntValue process(
Value.CapStyles process(
@Nonnull final String value,
@Nonnull final BufferParameters instance) {
Value.CapStyles style = Value.CapStyles.valueOf(value.toUpperCase());
Value.CapStyles style = Value.CapStyles.valueFrom(value);
instance.setEndCapStyle(style.value);
return style;
}
Expand All @@ -118,7 +108,7 @@ Value.CapStyles process(
Value.JoinStyles process(
@Nonnull final String value,
@Nonnull final BufferParameters instance) {
Value.JoinStyles style = Value.JoinStyles.valueOf(value.toUpperCase());
Value.JoinStyles style = Value.JoinStyles.valueFrom(value);
instance.setJoinStyle(style.value);
return style;
}
Expand All @@ -138,23 +128,27 @@ Value.DoubleValue process(
Value.Sides process(
@Nonnull final String value,
@Nonnull final BufferParameters instance) {
final Value.Sides side = (Value.Sides.valueOf(value.toUpperCase()));
final Value.Sides side = (Value.Sides.valueFrom(value));
instance.setSingleSided(side.equals(Value.Sides.BOTH));
return side;
}
};

public static Parameters valueFrom(final @Nonnull String value) {
return Parameters.valueOf(value.toUpperCase());
}

abstract Value<?> process(@Nonnull String value, @Nonnull BufferParameters instance);
}

public static Definition parse(final @Nonnull String string) {
final BufferParameters instance = new BufferParameters();
final Map<Parameters, Value<?>> settings = Arrays
.stream(string.split(PAIR_DELIMITER))
.map(kvpair -> {
String[] pair = kvpair.split(KV_DELIMITER);
Parameters parameter = Parameters.valueOf(pair[0].toUpperCase());
Value<?> value = parameter.process(pair[1], instance);
.map(pair -> {
String[] parts = pair.split(KV_DELIMITER);
Parameters parameter = Parameters.valueFrom(parts[0]);
Value<?> value = parameter.process(parts[1], instance);
return Pair.create(parameter, value);
}).collect(Collectors.toMap(Pair::fst, Pair::snd));
return Definition.wrap(instance, settings);
Expand Down

0 comments on commit c0c52ad

Please sign in to comment.