mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-10-26 05:50:08 +00:00
start working on meta loaders
This commit is contained in:
1 parent
91703c4fc9
commit
d95239a5dd
4 files changed
+37
-8
No files matched your search
@@ -4,5 +4,5 @@ package com.dfsek.terra.api.config.meta;
|
|||||||
* Context from which to pull {@link MetaValue}s
|
* Context from which to pull {@link MetaValue}s
|
||||||
*/
|
*/
|
||||||
public interface MetaContext {
|
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.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
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.config.meta.specific.MetaList;
|
||||||
|
import com.dfsek.terra.api.util.GlueList;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
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
|
@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;
|
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.exception.LoadException;
|
||||||
import com.dfsek.tectonic.loading.ConfigLoader;
|
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 com.dfsek.terra.api.config.meta.specific.MetaMap;
|
||||||
|
|
||||||
import java.lang.reflect.Type;
|
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
|
@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;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Object, Object> get() {
|
||||||
|
return new HashMap<>();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -1,8 +1,15 @@
|
|||||||
package com.dfsek.terra.config.loaders.meta;
|
package com.dfsek.terra.config.loaders.meta;
|
||||||
|
|
||||||
import com.dfsek.tectonic.loading.TypeLoader;
|
import com.dfsek.tectonic.loading.TypeLoader;
|
||||||
|
import com.dfsek.terra.api.config.meta.MetaContext;
|
||||||
import com.dfsek.terra.api.config.meta.MetaValue;
|
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