diff options
Diffstat (limited to 'module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java')
-rw-r--r-- | module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java | 213 |
1 files changed, 0 insertions, 213 deletions
diff --git a/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java b/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java deleted file mode 100644 index 351a3e1..0000000 --- a/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java +++ /dev/null @@ -1,213 +0,0 @@ -package io.trygvis.rules.terraform; - -import com.fasterxml.jackson.annotation.JsonValue; - -import java.util.*; - -@SuppressWarnings("unused") -public class TerraformResource { - private static final String EOL = System.getProperty("line.separator"); - private final String output; - private final String kind; - private final String instance; - private final Map<String, TerraformValue> values = new LinkedHashMap<>(); - - public TerraformResource(String output, String kind, String instance) { - this.output = output; - this.kind = kind; - this.instance = instance; - } - - public String getOutput() { - return output; - } - - public String getName() { - return kind + "." + instance; - } - - public String getKind() { - return kind; - } - - public String getInstance() { - return instance; - } - - public Map<String, TerraformValue> getValues() { - return values; - } - - public TerraformResource set(String key, String value) { - values.put(key, new StringTerraformValue(value)); - return this; - } - - public TerraformResource set(String key, boolean value) { - values.put(key, new BooleanTerraformValue(value)); - return this; - } - - public TerraformResource set(String key, int value) { - values.put(key, new IntegerTerraformValue(value)); - return this; - } - - public TerraformResource setExpression(String key, String value) { - values.put(key, new ExpressionTerraformValue(value)); - return this; - } - - public ArrayTerraformValue array(String key) { - var array = new ArrayTerraformValue(); - values.put(key, array); - return array; - } - - public String asString() { - var buf = new StringBuilder(); - - buf.append("resource "); - buf.append(quote(kind)); - buf.append(" "); - buf.append(quote(instance)); - buf.append(" {"); - buf.append(EOL); - - for (var entry : values.entrySet()) { - buf.append(" "); - buf.append(entry.getKey()); - buf.append(" = "); - buf.append(entry.getValue().asString()); - buf.append(EOL); - } - - buf.append("}"); - - return buf.toString(); - } - - public interface TerraformValue { - String asString(); - } - - public static class StringTerraformValue implements TerraformValue { - private final String value; - - public StringTerraformValue(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String asString() { - return quote(value); - } - } - - public static class BooleanTerraformValue implements TerraformValue { - private final boolean value; - - public BooleanTerraformValue(boolean value) { - this.value = value; - } - - @JsonValue - public boolean getValue() { - return value; - } - - @Override - public String asString() { - return String.valueOf(value); - } - } - - public static class IntegerTerraformValue implements TerraformValue { - private final int value; - - public IntegerTerraformValue(int value) { - this.value = value; - } - - @JsonValue - public int getValue() { - return value; - } - - @Override - public String asString() { - return String.valueOf(value); - } - } - - public static class ExpressionTerraformValue implements TerraformValue { - private final String value; - - public ExpressionTerraformValue(String value) { - this.value = value; - } - - @JsonValue - public String getValue() { - return value; - } - - @Override - public String asString() { - return value; - } - } - - public static class ArrayTerraformValue implements TerraformValue { - private final List<TerraformValue> values = new ArrayList<>(); - - @JsonValue - public List<TerraformValue> getValues() { - return values; - } - - public ArrayTerraformValue add(String value) { - values.add(new StringTerraformValue(value)); - return this; - } - - public ArrayTerraformValue add(int value) { - values.add(new IntegerTerraformValue(value)); - return this; - } - - public ArrayTerraformValue add(boolean value) { - values.add(new BooleanTerraformValue(value)); - return this; - } - - public ArrayTerraformValue addExpression(String value) { - values.add(new ExpressionTerraformValue(value)); - return this; - } - - @Override - public String asString() { - if (values.isEmpty()) { - return "[]"; - } - - if (values.size() == 1) { - return "[" + values.get(0).asString() + "]"; - } - - var j = new StringJoiner(",\n ", "[\n", "\n ]"); - values.forEach(value -> j.add(value.asString())); - return j.toString(); - } - } - - private static String quote(String value) { - return "\"%s\"".formatted(value); - } -} |