diff --git a/common/src/main/java/com/dfsek/terra/api/config/meta/MetaContext.java b/common/src/main/java/com/dfsek/terra/api/config/meta/MetaContext.java new file mode 100644 index 000000000..cb5f2a7d2 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/config/meta/MetaContext.java @@ -0,0 +1,8 @@ +package com.dfsek.terra.api.config.meta; + +/** + * Context from which to pull {@link MetaValue}s + */ +public interface MetaContext { + T load(); +} diff --git a/common/src/main/java/com/dfsek/terra/api/config/meta/MetaValue.java b/common/src/main/java/com/dfsek/terra/api/config/meta/MetaValue.java new file mode 100644 index 000000000..0e27efe24 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/config/meta/MetaValue.java @@ -0,0 +1,5 @@ +package com.dfsek.terra.api.config.meta; + +public interface MetaValue { + T load(MetaContext context); +} diff --git a/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaList.java b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaList.java new file mode 100644 index 000000000..145a6a865 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaList.java @@ -0,0 +1,8 @@ +package com.dfsek.terra.api.config.meta.specific; + +import com.dfsek.terra.api.config.meta.MetaValue; + +import java.util.List; + +public interface MetaList extends MetaValue> { +} diff --git a/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaMap.java b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaMap.java new file mode 100644 index 000000000..9bc05cafc --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaMap.java @@ -0,0 +1,8 @@ +package com.dfsek.terra.api.config.meta.specific; + +import com.dfsek.terra.api.config.meta.MetaValue; + +import java.util.Map; + +public interface MetaMap extends MetaValue> { +} diff --git a/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaSet.java b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaSet.java new file mode 100644 index 000000000..538d88b63 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/api/config/meta/specific/MetaSet.java @@ -0,0 +1,8 @@ +package com.dfsek.terra.api.config.meta.specific; + +import com.dfsek.terra.api.config.meta.MetaValue; + +import java.util.Set; + +public interface MetaSet extends MetaValue> { +} diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaListLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaListLoader.java new file mode 100644 index 000000000..00076e868 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaListLoader.java @@ -0,0 +1,15 @@ +package com.dfsek.terra.config.loaders.meta; + +import com.dfsek.tectonic.exception.LoadException; +import com.dfsek.tectonic.loading.ConfigLoader; +import com.dfsek.tectonic.loading.TypeLoader; +import com.dfsek.terra.api.config.meta.specific.MetaList; + +import java.lang.reflect.Type; + +public class MetaListLoader implements TypeLoader> { + @Override + public MetaList load(Type t, Object c, ConfigLoader loader) throws LoadException { + return null; + } +} diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaMapLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaMapLoader.java new file mode 100644 index 000000000..3bdb5ad8c --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaMapLoader.java @@ -0,0 +1,15 @@ +package com.dfsek.terra.config.loaders.meta; + +import com.dfsek.tectonic.exception.LoadException; +import com.dfsek.tectonic.loading.ConfigLoader; +import com.dfsek.tectonic.loading.TypeLoader; +import com.dfsek.terra.api.config.meta.specific.MetaMap; + +import java.lang.reflect.Type; + +public class MetaMapLoader implements TypeLoader> { + @Override + public MetaMap load(Type t, Object c, ConfigLoader loader) throws LoadException { + return null; + } +} diff --git a/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaValueLoader.java b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaValueLoader.java new file mode 100644 index 000000000..dfa815a99 --- /dev/null +++ b/common/src/main/java/com/dfsek/terra/config/loaders/meta/MetaValueLoader.java @@ -0,0 +1,8 @@ +package com.dfsek.terra.config.loaders.meta; + +import com.dfsek.tectonic.loading.TypeLoader; +import com.dfsek.terra.api.config.meta.MetaValue; + +public abstract class MetaValueLoader, T> implements TypeLoader { + +}