summaryrefslogtreecommitdiff
path: root/module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java
diff options
context:
space:
mode:
authorTrygve Laugstøl <trygvis@inamo.no>2021-02-03 16:35:48 +0100
committerTrygve Laugstøl <trygvis@inamo.no>2021-02-03 16:35:48 +0100
commitbafe762ac01d16904c18404283027e426e19bc73 (patch)
treec22688ad186f5ce635f525704c5035f91b983b68 /module/ri-base/src/main/java/io/trygvis/rules/terraform/TerraformResource.java
parent91abd0b04320a9c9d932df195aca38c1cacfcc5a (diff)
downloadrules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.gz
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.bz2
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.tar.xz
rules-sandbox-bafe762ac01d16904c18404283027e426e19bc73.zip
Code reorganization.
Moving main code to src, keeping modules in modules/
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.java213
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);
- }
-}