mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-04-04 23:06:05 +00:00
start working on meta loaders
This commit is contained in:
@@ -4,5 +4,5 @@ package com.dfsek.terra.api.config.meta;
|
||||
* Context from which to pull {@link MetaValue}s
|
||||
*/
|
||||
public interface MetaContext {
|
||||
<T> T load();
|
||||
<T> T load(Object metaCandidate);
|
||||
}
|
||||
|
||||
@@ -2,14 +2,25 @@ 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.MetaContext;
|
||||
import com.dfsek.terra.api.config.meta.specific.MetaList;
|
||||
import com.dfsek.terra.api.util.GlueList;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.List;
|
||||
|
||||
public class MetaListLoader extends MetaValueLoader<MetaList<Object>, List<Object>> {
|
||||
protected MetaListLoader(MetaContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public class MetaListLoader implements TypeLoader<MetaList<?>> {
|
||||
@Override
|
||||
public MetaList<?> load(Type t, Object c, ConfigLoader loader) throws LoadException {
|
||||
public MetaList<Object> load(Type t, Object c, ConfigLoader loader) throws LoadException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Object> get() {
|
||||
return new GlueList<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,14 +2,25 @@ 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.MetaContext;
|
||||
import com.dfsek.terra.api.config.meta.specific.MetaMap;
|
||||
|
||||
import java.lang.reflect.Type;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MetaMapLoader extends MetaValueLoader<MetaMap<Object, Object>, Map<Object, Object>> {
|
||||
public MetaMapLoader(MetaContext context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public class MetaMapLoader implements TypeLoader<MetaMap<?, ?>> {
|
||||
@Override
|
||||
public MetaMap<?, ?> load(Type t, Object c, ConfigLoader loader) throws LoadException {
|
||||
public MetaMap<Object, Object> load(Type t, Object c, ConfigLoader loader) throws LoadException {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<Object, Object> get() {
|
||||
return new HashMap<>();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,8 +1,15 @@
|
||||
package com.dfsek.terra.config.loaders.meta;
|
||||
|
||||
import com.dfsek.tectonic.loading.TypeLoader;
|
||||
import com.dfsek.terra.api.config.meta.MetaContext;
|
||||
import com.dfsek.terra.api.config.meta.MetaValue;
|
||||
|
||||
public abstract class MetaValueLoader<M extends MetaValue<T>, T> implements TypeLoader<T> {
|
||||
import java.util.function.Supplier;
|
||||
|
||||
public abstract class MetaValueLoader<M extends MetaValue<T>, T> implements TypeLoader<M>, Supplier<T> {
|
||||
private final MetaContext context;
|
||||
|
||||
protected MetaValueLoader(MetaContext context) {
|
||||
this.context = context;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user