Skip to content

Commit

Permalink
change to parentKey, add extensonConfig interface
Browse files Browse the repository at this point in the history
  • Loading branch information
alx652 committed Mar 18, 2024
1 parent 48a1c3b commit ab80e33
Show file tree
Hide file tree
Showing 17 changed files with 103 additions and 89 deletions.
17 changes: 17 additions & 0 deletions gsrs-core/src/main/java/gsrs/util/ExtensionConfig.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package gsrs.util;

public interface ExtensionConfig<T> {

String getParentKey();

Double getOrder();

boolean isDisabled();

void setParentKey(String parentKey);

void setOrder(Double order);

void setDisabled(boolean disabled);

}
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
import java.util.Map;

@Data
public class RegisteredFunctionConfig {
public class RegisteredFunctionConfig implements ExtensionConfig {
private Class registeredFunctionClass;
private String key;
private String parentKey;
private Double order;
private boolean disabled = false;
private Map<String, Object> parameters;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -128,16 +128,16 @@ private List<? extends RegisteredFunctionConfig> loadRegisteredFunctionsFromCon
return Collections.emptyList();
}
for (String k: map.keySet()) {
map.get(k).put("key", k);
map.get(k).put("parentKey", k);
}
List<Object> list = map.values().stream().collect(Collectors.toList());
List<? extends RegisteredFunctionConfig> configs = mapper.convertValue(list, new TypeReference<List<? extends RegisteredFunctionConfig>>() { });
System.out.println( reportTag + "found before filtering: " + configs.size());
configs = configs.stream().filter(c->!c.isDisabled()).sorted(Comparator.comparing(c->c.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "parentKey", "order", "isDisabled"));
for (RegisteredFunctionConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getRegisteredFunctionClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getRegisteredFunctionClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}
return configs;
} catch (Throwable t) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import gsrs.scheduledTasks.SchedulerPlugin;
import gsrs.scheduledTasks.SchedulerPlugin.ScheduledTask;
import gsrs.springUtils.AutowireHelper;
import gsrs.util.ExtensionConfig;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
Expand All @@ -24,8 +25,6 @@
@ConfigurationProperties("gsrs.scheduled-tasks")
public class GsrsSchedulerTaskPropertiesConfiguration {

// private List<ScheduledTaskConfig> _list = new ArrayList<>();

private Map<String, ScheduledTaskConfig> list = new HashMap<String, ScheduledTaskConfig>();

public Map<String, ScheduledTaskConfig> getList() {
Expand All @@ -39,9 +38,9 @@ public void setList(Map<String, ScheduledTaskConfig> list) {
// public void setList(List<ScheduledTaskConfig> list) { this.list = list; }

@Data
public static class ScheduledTaskConfig{
public static class ScheduledTaskConfig implements ExtensionConfig {
private String scheduledTaskClass;
private String key;
private String parentKey;
private Double order;
private boolean disabled = false;
private Map<String, Object> parameters;
Expand All @@ -61,15 +60,15 @@ public void unknownSetter(String key, Object value){
ObjectMapper mapper = new ObjectMapper();
for (String k: list.keySet()) {
ScheduledTaskConfig config = list.get(k);
config.setKey(k);
config.setParentKey(k);
}
List<ScheduledTaskConfig> configs = list.values().stream().collect(Collectors.toList());
System.out.println(reportTag + " found before filtering: " + configs.size());
configs = configs.stream().filter(p->!p.isDisabled()).sorted(Comparator.comparing(i->i.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "parentKey", "order", "isDisabled"));
for (ScheduledTaskConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getScheduledTaskClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getScheduledTaskClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}

for(ScheduledTaskConfig config : configs){
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -65,23 +65,22 @@ public List<EntityProcessorConfig> getEntityProcessors() {
return Collections.emptyList();
}
for (String k: map.keySet()) {
map.get(k).setKey(k);
map.get(k).setParentKey(k);
}
List<EntityProcessorConfig> configs = map.values().stream().collect(Collectors.toList());
System.out.println(reportTag + " found before filtering: " + configs.size());
configs = configs.stream().filter(c->!c.isDisabled()).sorted(Comparator.comparing(c->c.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "parentKey", "order", "isDisabled"));
for (EntityProcessorConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getProcessor(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getProcessor(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}
return configs;
}

public List<? extends ValidatorConfig> getValidatorConfigByContext(String context) {
String reportTag = "ValidatorConfig";
if (validators == null) {
//nothing set
return Collections.emptyList();
}
ObjectMapper mapper = new ObjectMapper();
Expand All @@ -91,16 +90,16 @@ public List<? extends ValidatorConfig> getValidatorConfigByContext(String contex
return Collections.emptyList();
}
for (String k: map.keySet()) {
map.get(k).put("key", k);
map.get(k).put("parentKey", k);
}
List<Object> list = map.values().stream().collect(Collectors.toList());
List<? extends ValidatorConfig> configs = mapper.convertValue(list, new TypeReference<List<? extends ValidatorConfig>>() { });
System.out.println( reportTag + "found before filtering: " + configs.size());
configs = configs.stream().filter(c->!c.isDisabled()).sorted(Comparator.comparing(c->c.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "parentKey", "order", "isDisabled"));
for (ValidatorConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getValidatorClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getValidatorClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}
return configs;
} catch (Throwable t) {
Expand Down Expand Up @@ -134,16 +133,16 @@ public List<? extends ImportAdapterFactoryConfig> getImportAdapterFactories(Stri
return Collections.emptyList();
}
for (String k: map.keySet()) {
map.get(k).put("key", k);
map.get(k).put("parentKey", k);
}
List<Object> list = map.values().stream().collect(Collectors.toList());
List<? extends ImportAdapterFactoryConfig> configs = EntityUtils.convertClean(list, new TypeReference<List<? extends ImportAdapterFactoryConfig>>() { });
System.out.println(reportTag + " found before filtering: " + configs.size());
configs = configs.stream().filter(c->!c.isDisabled()).sorted(Comparator.comparing(c->c.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "class", "parentKey", "order", "isDisabled"));
for (ImportAdapterFactoryConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getImportAdapterFactoryClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getImportAdapterFactoryClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}

//log.trace("list (after):");
Expand All @@ -169,16 +168,16 @@ public List<? extends MatchableCalculationConfig> getMatchableCalculationConfig(
}
// Copy the key into the Object for quality control and maybe as a way to access by key from the list
for (String k: map.keySet()) {
map.get(k).put("key", k);
map.get(k).put("parentKey", k);
}
List<Object> list = map.values().stream().collect(Collectors.toList());
List<? extends MatchableCalculationConfig> configs = EntityUtils.convertClean(list, new TypeReference<List<? extends MatchableCalculationConfig>>() { });
System.out.println(reportTag + " found before filtering: " + configs.size());
configs = configs.stream().filter(c->!c.isDisabled()).sorted(Comparator.comparing(c->c.getOrder(),nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " active after filtering: " + configs.size());
System.out.println(String.format("%s|%s|%s|%s", "MatchableCalculator", "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", "MatchableCalculator", "class", "parentKey", "order", "isDisabled"));
for (MatchableCalculationConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getMatchableCalculationClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", reportTag, config.getMatchableCalculationClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}
return configs;
} catch (Throwable t) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package gsrs.autoconfigure;

import gsrs.util.ExtensionConfig;
import lombok.Data;

import java.util.Map;

@Data
public class ExporterFactoryConfig {
public class ExporterFactoryConfig implements ExtensionConfig {
private Class exporterFactoryClass;
private String key;
private String parentKey;
private Double order;
private boolean disabled = false;
private Map<String, Object> parameters;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ public class GsrsExportConfiguration {
for (Map.Entry<String, Map<String, ExporterFactoryConfig>> entry1 : exporterFactories.entrySet()) {
Map<String, ExporterFactoryConfig> m = entry1.getValue();
for (Map.Entry<String, ExporterFactoryConfig> entry2 : m.entrySet()) {
entry2.getValue().setKey(entry2.getKey());
entry2.getValue().setParentKey(entry2.getKey());
}
}
for (Map.Entry<String, Map<String, ExporterFactoryConfig>> entry1 : exporterFactories.entrySet()) {
Expand All @@ -80,9 +80,9 @@ public class GsrsExportConfiguration {
configs = configs.stream().filter(p -> !p.isDisabled()).sorted(Comparator.comparing(i -> i.getOrder(), nullsFirst(naturalOrder()))).collect(Collectors.toList());
System.out.println(reportTag + " for [" + mapKey + "] found after filtering: " + configs.size());
exporterFactoriesMapList.put(mapKey, configs);
System.out.println(String.format("%s|%s|%s|%s", reportTag, "context", "class", "key", "order", "isDisabled"));
System.out.println(String.format("%s|%s|%s|%s", reportTag, "context", "class", "parentKey", "order", "isDisabled"));
for (ExporterFactoryConfig config : configs) {
System.out.println(String.format("%s|%s|%s|%s", "reportTag", mapKey, config.getExporterFactoryClass(), config.getKey(), config.getOrder(), config.isDisabled()));
System.out.println(String.format("%s|%s|%s|%s", "reportTag", mapKey, config.getExporterFactoryClass(), config.getParentKey(), config.getOrder(), config.isDisabled()));
}
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package gsrs.controller;

import gsrs.GsrsFactoryConfiguration;
import gsrs.validator.ValidatorConfig;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class ExtensionConfigurationController {

@Autowired
GsrsFactoryConfiguration gsrsFactoryConfiguration;

@GetMapping("/api/v1/validatorsConfiguration")
public ResponseEntity<List<? extends ValidatorConfig> > getValidators() {
List<? extends ValidatorConfig> validatorConfigs = gsrsFactoryConfiguration.getValidatorConfigByContext("substances");
System.out.println(validatorConfigs.toString());
return (ResponseEntity<List<? extends ValidatorConfig>>) validatorConfigs;
}
@GetMapping("/api/v1/someText")
public String getSomeText() {
return "Hi there";
}

}
Original file line number Diff line number Diff line change
@@ -1,19 +1,17 @@
package gsrs.entityProcessor;

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;
import gsrs.util.ExtensionConfig;
import ix.core.EntityProcessor;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.lang.reflect.Constructor;
import java.util.Map;
@Data
public class EntityProcessorConfig {
private String key;
public class EntityProcessorConfig implements ExtensionConfig {
private Class entityClassName;
private Class processor;
private String parentKey;
private Double order;
private boolean disabled = false;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ public class DefaultImportAdapterFactoryConfig implements ImportAdapterFactoryCo
private List<String> extensions;
private String adapterName;

private String key;
private String parentKey;
private Double order;
private boolean disabled = false;

Expand Down Expand Up @@ -84,13 +84,13 @@ public void setImportAdapterFactoryClass(Class importAdapterFactoryClass) {
}

@Override
public String getKey() {
return this.key;
public String getParentKey() {
return this.parentKey;
}

@Override
public void setKey(String key) {
this.key = key;
public void setParentKey(String key) {
this.parentKey = parentKey;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ public class DefaultMatchableCalculationConfig<T> implements MatchableCalculatio

private Class extractorClass;

private String key;
private String parentKey;
private Double order;
private boolean disabled = false;

Expand All @@ -20,13 +20,13 @@ public Class getMatchableCalculationClass() {
}

@Override
public String getKey() {
return key;
public String getParentKey() {
return parentKey;
}

@Override
public void setKey(String key) {
this.key = key;
public void setParentKey(String parentKey) {
this.parentKey = parentKey;
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver;
import gsrs.util.ExtensionConfig;
import ix.core.util.InheritanceTypeIdResolver;

import java.util.List;
Expand All @@ -14,22 +15,12 @@
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, include = JsonTypeInfo.As.PROPERTY, property = "configClass", defaultImpl = DefaultImportAdapterFactoryConfig.class)
@JsonTypeIdResolver(InheritanceTypeIdResolver.class)
public interface ImportAdapterFactoryConfig {
public interface ImportAdapterFactoryConfig extends ExtensionConfig {

Class getImportAdapterFactoryClass();

void setImportAdapterFactoryClass(Class importAdapterFactoryClass);

String getKey();
void setKey(String key);


Double getOrder();
void setOrder(Double order);

boolean isDisabled();
void setDisabled(boolean disabled);

Map<String, Object> getParameters();
void setParameters(Map<String, Object> params);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver;
import gsrs.util.ExtensionConfig;
import gsrs.stagingarea.model.MatchableKeyValueTupleExtractor;
import ix.core.util.InheritanceTypeIdResolver;

Expand All @@ -11,19 +12,10 @@
*/
@JsonTypeInfo(use = JsonTypeInfo.Id.CUSTOM, include = JsonTypeInfo.As.PROPERTY, property = "configClass", defaultImpl = DefaultMatchableCalculationConfig.class)
@JsonTypeIdResolver(InheritanceTypeIdResolver.class)
public interface MatchableCalculationConfig<T> {
public interface MatchableCalculationConfig<T> extends ExtensionConfig {

Class<? extends MatchableKeyValueTupleExtractor> getMatchableCalculationClass();

String getKey();
void setKey(String key);

Double getOrder();
void setOrder(Double order);

boolean isDisabled();
void setDisabled(boolean disabled);

void setMatchableCalculationClass(Class<? extends MatchableKeyValueTupleExtractor> calculatorClass);

void setConfig(JsonNode config);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class DefaultValidatorConfig implements ValidatorConfig {
private Map<String, Object> unknownParameters = new ConcurrentHashMap<>();

private Class newObjClass;
private String key;
private String parentKey;
private Double order;
private boolean disabled = false;

Expand Down
Loading

0 comments on commit ab80e33

Please sign in to comment.