diff --git a/README.md b/README.md
index e9b049da..70181e81 100644
--- a/README.md
+++ b/README.md
@@ -115,7 +115,7 @@ First, add the library into your project's `pom.xml` file:
de.gwdg.metadata
metadata-qa-api
- 0.7
+ 0.9.0
```
@@ -134,16 +134,16 @@ Define a schema:
Schema schema = new BaseSchema()
// this schema will be used for a CSV file
.setFormat(Format.CSV)
- // JsonBranch represents a data element, which might have
+ // DataELement represents a data element, which might have
// a number of properties
.addField(
- new JsonBranch("url", Category.MANDATORY)
+ new DataELement("url", Category.MANDATORY)
.setExtractable()
)
- .addField(new JsonBranch("name"))
- .addField(new JsonBranch("alternateName"))
+ .addField(new DataELement("name"))
+ .addField(new DataELement("alternateName"))
...
- .addField(new JsonBranch("temporalCoverage"));
+ .addField(new DataELement("temporalCoverage"));
```
Build a `CalculatorFacade` object:
@@ -483,7 +483,7 @@ The same in JSON:
```
The central piece is the `fields` array. Each item represents the properties of
-a single data elements (a JsonBranch in the API). Its properties are:
+a single data elements (a DataELement in the API). Its properties are:
* `name` (String): the name or label of the data element
* `path` (String): a address of the data element. If the format is XML, it
@@ -945,14 +945,14 @@ turn it off.
Schema schema = new BaseSchema()
.setFormat(Format.CSV)
.addField(
- new JsonBranch("title", "title")
+ new DataELement("title", "title")
.setRule(
new Rule()
.withDisjoint("description")
)
)
.addField(
- new JsonBranch("url", "url")
+ new DataELement("url", "url")
.setRule(
new Rule()
.withMinCount(1)
@@ -1117,7 +1117,7 @@ version name), you have to enable the retrieval of those versions in the `pom.xm
de.gwdg.metadata
metadata-qa-api
- 0.8-SNAPSHOT
+ 0.9-SNAPSHOT
```
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculator.java b/src/main/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculator.java
index 0bbb4394..cfeb0a4f 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculator.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculator.java
@@ -6,7 +6,7 @@
import de.gwdg.metadataqa.api.interfaces.Calculator;
import de.gwdg.metadataqa.api.interfaces.MetricResult;
import de.gwdg.metadataqa.api.json.FieldGroup;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.problemcatalog.FieldCounterBasedResult;
@@ -77,18 +77,18 @@ public List measure(PathCache cache)
: new ArrayList<>();
if (schema.getCollectionPaths() == null || schema.getCollectionPaths().isEmpty()) {
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (!jsonBranch.isActive()) {
+ for (DataElement dataElement : schema.getPaths()) {
+ if (!dataElement.isActive()) {
continue;
}
- evaluateJsonBranch(jsonBranch, cache, completenessCounter, jsonBranch.getLabel(), null);
+ evaluateDataElement(dataElement, cache, completenessCounter, dataElement.getLabel(), null);
}
} else {
- for (JsonBranch collection : schema.getCollectionPaths()) {
+ for (DataElement collection : schema.getCollectionPaths()) {
if (!collection.isActive()) {
continue;
}
- Object rawJsonFragment = cache.getFragment(collection.getJsonPath());
+ Object rawJsonFragment = cache.getFragment(collection.getPath());
List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema);
if (jsonFragments.isEmpty()) {
handleEmptyFragment(collection);
@@ -98,12 +98,12 @@ public List measure(PathCache cache)
if (skippedEntitySelector.isCollectionSkippable(skippableIds, collection, i, cache, jsonFragment)) {
handleEmptyFragment(collection);
} else {
- for (JsonBranch child : collection.getChildren()) {
+ for (DataElement child : collection.getChildren()) {
if (!child.isActive()) {
continue;
}
- var address = String.format("%s/%d/%s", collection.getJsonPath(), i, child.getJsonPath());
- evaluateJsonBranch(child, cache, completenessCounter, address, jsonFragment);
+ var address = String.format("%s/%d/%s", collection.getPath(), i, child.getPath());
+ evaluateDataElement(child, cache, completenessCounter, address, jsonFragment);
}
}
}
@@ -148,8 +148,8 @@ public void initializeCounters() {
}
}
- public void handleEmptyFragment(JsonBranch collection) {
- for (JsonBranch child : collection.getChildren()) {
+ public void handleEmptyFragment(DataElement collection) {
+ for (DataElement child : collection.getChildren()) {
if (!child.isActive()) {
continue;
}
@@ -157,26 +157,26 @@ public void handleEmptyFragment(JsonBranch collection) {
}
}
- public void evaluateJsonBranch(JsonBranch jsonBranch,
- PathCache cache,
- CompletenessCounter completenessCounter,
- String address,
- Object jsonFragment) {
- List values = cache.get(address, jsonBranch.getJsonPath(), jsonFragment);
- handleValues(completenessCounter, jsonBranch, values);
+ public void evaluateDataElement(DataElement dataElement,
+ PathCache cache,
+ CompletenessCounter completenessCounter,
+ String address,
+ Object jsonFragment) {
+ List values = cache.get(address, dataElement.getPath(), jsonFragment);
+ handleValues(completenessCounter, dataElement, values);
}
private void handleValues(CompletenessCounter completenessCounter,
- JsonBranch jsonBranch,
+ DataElement dataElement,
List values) {
if (completeness) {
- completenessCounter.increaseTotal(jsonBranch.getCategories());
+ completenessCounter.increaseTotal(dataElement.getCategories());
}
if (values != null && !values.isEmpty() && !isEmpty(values)) {
- handleNonNullValues(completenessCounter, jsonBranch, values);
+ handleNonNullValues(completenessCounter, dataElement, values);
} else {
- handleNullValues(jsonBranch);
+ handleNullValues(dataElement);
}
}
@@ -193,12 +193,12 @@ private boolean isEmpty(List values) {
}
private void handleNonNullValues(CompletenessCounter completenessCounter,
- JsonBranch jsonBranch,
+ DataElement dataElement,
List values) {
- final String label = jsonBranch.getLabel();
+ final String label = dataElement.getLabel();
if (completeness) {
- completenessCounter.increaseInstance(jsonBranch.getCategories());
+ completenessCounter.increaseInstance(dataElement.getCategories());
}
if (existence) {
@@ -218,15 +218,15 @@ private void handleNonNullValues(CompletenessCounter completenessCounter,
}
}
- private void handleNullValues(JsonBranch jsonBranch) {
- if (existence && !existenceCounter.has(jsonBranch.getLabel()))
- existenceCounter.put(jsonBranch.getLabel(), false);
+ private void handleNullValues(DataElement dataElement) {
+ if (existence && !existenceCounter.has(dataElement.getLabel()))
+ existenceCounter.put(dataElement.getLabel(), false);
- if (cardinality && !cardinalityCounter.has(jsonBranch.getLabel()))
- cardinalityCounter.put(jsonBranch.getLabel(), 0);
+ if (cardinality && !cardinalityCounter.has(dataElement.getLabel()))
+ cardinalityCounter.put(dataElement.getLabel(), 0);
- if (collectFields && !missingFields.contains(jsonBranch.getLabel()))
- missingFields.add(jsonBranch.getLabel());
+ if (collectFields && !missingFields.contains(dataElement.getLabel()))
+ missingFields.add(dataElement.getLabel());
}
public void collectFields(boolean collectFields) {
@@ -348,17 +348,17 @@ public List getHeader() {
}
if (existence) {
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (!jsonBranch.isCollection() && jsonBranch.isActive()) {
- headers.add("existence:" + jsonBranch.getLabel());
+ for (DataElement dataElement : schema.getPaths()) {
+ if (!dataElement.isCollection() && dataElement.isActive()) {
+ headers.add("existence:" + dataElement.getLabel());
}
}
}
if (cardinality) {
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (!jsonBranch.isCollection() && jsonBranch.isActive()) {
- headers.add("cardinality:" + jsonBranch.getLabel());
+ for (DataElement dataElement : schema.getPaths()) {
+ if (!dataElement.isCollection() && dataElement.isActive()) {
+ headers.add("cardinality:" + dataElement.getLabel());
}
}
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java b/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java
index 20054071..d76e43c4 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/Indexer.java
@@ -33,11 +33,11 @@ public Indexer(SolrClient solrClient, Schema schema) {
@Override
public List measure(PathCache cache) {
try {
- String recordId = extractValue(cache, schema.getRecordId().getJsonPath()).get(0);
+ String recordId = extractValue(cache, schema.getRecordId().getPath()).get(0);
Map> resultMap = new HashMap<>();
for (UniquenessField solrField : solrFields) {
- List values = extractValue(cache, solrField.getJsonPath());
+ List values = extractValue(cache, solrField.getPath());
if (!values.isEmpty())
resultMap.put(solrField.getSolrField(), values);
}
@@ -52,9 +52,9 @@ public List measure(PathCache cache) {
return null;
}
- private List extractValue(PathCache cache, String jsonPath) {
+ private List extractValue(PathCache cache, String path) {
List values = new ArrayList<>();
- List instances = cache.get(jsonPath);
+ List instances = cache.get(path);
if (instances != null && !instances.isEmpty())
for (XmlFieldInstance instance : instances)
if (instance.hasValue())
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/LanguageCalculator.java b/src/main/java/de/gwdg/metadataqa/api/calculator/LanguageCalculator.java
index bd7be3d3..9c3e8a62 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/LanguageCalculator.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/LanguageCalculator.java
@@ -4,7 +4,7 @@
import de.gwdg.metadataqa.api.calculator.language.Language;
import de.gwdg.metadataqa.api.counter.FieldCounter;
import de.gwdg.metadataqa.api.interfaces.MetricResult;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.problemcatalog.FieldCounterBasedResult;
import de.gwdg.metadataqa.api.schema.Schema;
@@ -34,10 +34,10 @@ public String getCalculatorName() {
@Override
public List getHeader() {
List headers = new ArrayList<>();
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (jsonBranch.isActive()
- && !schema.getNoLanguageFields().contains(jsonBranch.getLabel())) {
- headers.add("lang:" + jsonBranch.getLabel());
+ for (DataElement dataElement : schema.getPaths()) {
+ if (dataElement.isActive()
+ && !schema.getNoLanguageFields().contains(dataElement.getLabel())) {
+ headers.add("lang:" + dataElement.getLabel());
}
}
return headers;
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/MultilingualitySaturationCalculator.java b/src/main/java/de/gwdg/metadataqa/api/calculator/MultilingualitySaturationCalculator.java
index eb98dccf..f33ad169 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/MultilingualitySaturationCalculator.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/MultilingualitySaturationCalculator.java
@@ -4,7 +4,7 @@
import de.gwdg.metadataqa.api.calculator.language.Multilinguality;
import de.gwdg.metadataqa.api.counter.FieldCounter;
import de.gwdg.metadataqa.api.interfaces.MetricResult;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.problemcatalog.FieldCounterBasedResult;
import de.gwdg.metadataqa.api.schema.Schema;
@@ -64,17 +64,17 @@ public String getCalculatorName() {
@Override
public List getHeader() {
List headers = new ArrayList<>();
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (jsonBranch.isActive() && !schema.getNoLanguageFields().contains(jsonBranch.getLabel())) {
+ for (DataElement dataElement : schema.getPaths()) {
+ if (dataElement.isActive() && !schema.getNoLanguageFields().contains(dataElement.getLabel())) {
switch (resultType) {
case EXTENDED:
- headers.add("lang:sum:" + jsonBranch.getLabel());
- headers.add("lang:average:" + jsonBranch.getLabel());
- headers.add("lang:normalized:" + jsonBranch.getLabel());
+ headers.add("lang:sum:" + dataElement.getLabel());
+ headers.add("lang:average:" + dataElement.getLabel());
+ headers.add("lang:normalized:" + dataElement.getLabel());
break;
case NORMAL:
default:
- headers.add("lang:" + jsonBranch.getLabel());
+ headers.add("lang:" + dataElement.getLabel());
break;
}
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculator.java b/src/main/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculator.java
index cd2d23ce..be34af57 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculator.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculator.java
@@ -3,7 +3,7 @@
import de.gwdg.metadataqa.api.counter.FieldCounter;
import de.gwdg.metadataqa.api.interfaces.Calculator;
import de.gwdg.metadataqa.api.interfaces.MetricResult;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.problemcatalog.FieldCounterBasedResult;
import de.gwdg.metadataqa.api.schema.Schema;
@@ -134,9 +134,9 @@ public boolean isTermCollectionEnabled() {
@Override
public List getHeader() {
List headers = new ArrayList<>();
- for (JsonBranch jsonBranch : schema.getIndexFields()) {
- headers.add(jsonBranch.getLabel() + ":sum");
- headers.add(jsonBranch.getLabel() + ":avg");
+ for (DataElement dataElement : schema.getIndexFields()) {
+ headers.add(dataElement.getLabel() + ":sum");
+ headers.add(dataElement.getLabel() + ":avg");
}
return headers;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/edm/EnhancementIdExtractor.java b/src/main/java/de/gwdg/metadataqa/api/calculator/edm/EnhancementIdExtractor.java
index 2100fbf1..826af2b9 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/edm/EnhancementIdExtractor.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/edm/EnhancementIdExtractor.java
@@ -1,6 +1,6 @@
package de.gwdg.metadataqa.api.calculator.edm;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.json.JsonUtils;
import de.gwdg.metadataqa.api.model.EdmFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
@@ -44,7 +44,7 @@ private EnhancementIdExtractor() {
public static List extractIds(PathCache cache, Schema schema) {
List enhancementIds = new ArrayList<>();
- String path = schema.getPathByLabel("Proxy").getJsonPath().replace("false", "true");
+ String path = schema.getPathByLabel("Proxy").getPath().replace("false", "true");
Object rawJsonFragment = cache.getFragment(path);
List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema);
if (schema.getFormat().equals(Format.JSON)) {
@@ -56,12 +56,12 @@ public static List extractIds(PathCache cache, Schema schema) {
}
public static void processXml(PathCache cache, Schema schema, List enhancementIds, List jsonFragments) {
- JsonBranch parent = schema.getPathByLabel("Proxy");
- for (JsonBranch child : parent.getChildren()) {
+ DataElement parent = schema.getPathByLabel("Proxy");
+ for (DataElement child : parent.getChildren()) {
if (isEnrichmentField(child.getLabel())) {
- String address = child.getAbsoluteJsonPath(schema.getFormat());
+ String address = child.getAbsolutePath(schema.getFormat());
Object context = jsonFragments.get(0);
- List fieldInstances = cache.get(address, child.getJsonPath(), context);
+ List fieldInstances = cache.get(address, child.getPath(), context);
if (fieldInstances != null && !fieldInstances.isEmpty()) {
for (EdmFieldInstance fieldInstance : fieldInstances) {
if (fieldInstance.isUrl()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/language/Language.java b/src/main/java/de/gwdg/metadataqa/api/calculator/language/Language.java
index 4c8342b8..59c9e964 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/language/Language.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/language/Language.java
@@ -2,7 +2,7 @@
import de.gwdg.metadataqa.api.counter.BasicCounter;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.EdmFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.schema.Schema;
@@ -29,17 +29,17 @@ public FieldCounter measure() {
languageMap = new FieldCounter<>();
rawLanguageMap = new LinkedHashMap<>();
if (schema.getCollectionPaths().isEmpty()) {
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (jsonBranch.isActive()
- && !schema.getNoLanguageFields().contains(jsonBranch.getLabel())) {
- extractLanguageTags(null, jsonBranch, jsonBranch.getJsonPath());
+ for (DataElement dataElement : schema.getPaths()) {
+ if (dataElement.isActive()
+ && !schema.getNoLanguageFields().contains(dataElement.getLabel())) {
+ extractLanguageTags(null, dataElement, dataElement.getPath());
}
}
} else {
- for (JsonBranch collection : schema.getCollectionPaths()) {
- Object rawJsonFragment = cache.getFragment(collection.getJsonPath());
+ for (DataElement collection : schema.getCollectionPaths()) {
+ Object rawJsonFragment = cache.getFragment(collection.getPath());
if (rawJsonFragment == null) {
- for (JsonBranch child : collection.getChildren()) {
+ for (DataElement child : collection.getChildren()) {
if (child.isActive() && !schema.getNoLanguageFields().contains(child.getLabel())) {
Map languages = new TreeMap<>();
increase(languages, "_1");
@@ -50,10 +50,10 @@ public FieldCounter measure() {
List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema);
for (int i = 0, len = jsonFragments.size(); i < len; i++) {
Object jsonFragment = jsonFragments.get(i);
- for (JsonBranch child : collection.getChildren()) {
+ for (DataElement child : collection.getChildren()) {
if (child.isActive() && !schema.getNoLanguageFields().contains(child.getLabel())) {
var address = String.format("%s/%d/%s",
- collection.getJsonPath(), i, child.getJsonPath());
+ collection.getPath(), i, child.getPath());
extractLanguageTags(jsonFragment, child, address);
}
}
@@ -65,9 +65,9 @@ public FieldCounter measure() {
}
private void extractLanguageTags(Object jsonFragment,
- JsonBranch jsonBranch,
+ DataElement dataElement,
String address) {
- List values = cache.get(address, jsonBranch.getJsonPath(), jsonFragment);
+ List values = cache.get(address, dataElement.getPath(), jsonFragment);
Map languages = new TreeMap<>();
if (values != null && !values.isEmpty()) {
for (EdmFieldInstance field : values) {
@@ -84,7 +84,7 @@ private void extractLanguageTags(Object jsonFragment,
} else {
increase(languages, "_1");
}
- updateMaps(jsonBranch.getLabel(), transformLanguages(languages));
+ updateMaps(dataElement.getLabel(), transformLanguages(languages));
}
private void increase(Map languages, String key) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/language/Multilinguality.java b/src/main/java/de/gwdg/metadataqa/api/calculator/language/Multilinguality.java
index 1b300130..8867619e 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/language/Multilinguality.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/language/Multilinguality.java
@@ -4,7 +4,7 @@
import de.gwdg.metadataqa.api.calculator.SkippedEntryChecker;
import de.gwdg.metadataqa.api.counter.BasicCounter;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.EdmFieldInstance;
import de.gwdg.metadataqa.api.model.LanguageSaturationType;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
@@ -74,21 +74,21 @@ private List getSkippableIds() {
}
private void measureFlatSchema() {
- for (JsonBranch jsonBranch : schema.getPaths()) {
- if (jsonBranch.isActive()
- && !schema.getNoLanguageFields().contains(jsonBranch.getLabel())) {
- extractLanguageTags(null, jsonBranch, jsonBranch.getJsonPath());
+ for (DataElement dataElement : schema.getPaths()) {
+ if (dataElement.isActive()
+ && !schema.getNoLanguageFields().contains(dataElement.getLabel())) {
+ extractLanguageTags(null, dataElement, dataElement.getPath());
}
}
}
private void measureHierarchicalSchema() {
List skippableIds = getSkippableIds();
- for (JsonBranch collection : schema.getCollectionPaths()) {
+ for (DataElement collection : schema.getCollectionPaths()) {
if (!collection.isActive()) {
continue;
}
- Object rawJsonFragment = cache.getFragment(collection.getJsonPath());
+ Object rawJsonFragment = cache.getFragment(collection.getPath());
if (rawJsonFragment == null) {
measureMissingCollection(collection);
} else {
@@ -97,8 +97,8 @@ private void measureHierarchicalSchema() {
}
}
- private void measureMissingCollection(JsonBranch collection) {
- for (JsonBranch child : collection.getChildren()) {
+ private void measureMissingCollection(DataElement collection) {
+ for (DataElement child : collection.getChildren()) {
if (child.isActive() && !schema.getNoLanguageFields().contains(child.getLabel())) {
Map languages = new TreeMap<>();
increase(languages, LanguageSaturationType.NA);
@@ -108,7 +108,7 @@ private void measureMissingCollection(JsonBranch collection) {
}
private void measureExistingCollection(Object rawJsonFragment,
- JsonBranch collection,
+ DataElement collection,
List skippableIds) {
List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema);
if (jsonFragments.isEmpty()) {
@@ -122,12 +122,12 @@ private void measureExistingCollection(Object rawJsonFragment,
measureMissingCollection(collection);
// TODO???
} else {
- for (JsonBranch child : collection.getChildren()) {
+ for (DataElement child : collection.getChildren()) {
if (child.isActive()
&& !schema.getNoLanguageFields().contains(child.getLabel())) {
var address = String.format(
"%s/%d/%s",
- collection.getJsonPath(), i, child.getJsonPath()
+ collection.getPath(), i, child.getPath()
);
extractLanguageTags(jsonFragment, child, address);
}
@@ -138,9 +138,9 @@ private void measureExistingCollection(Object rawJsonFragment,
}
private void extractLanguageTags(Object jsonFragment,
- JsonBranch jsonBranch,
+ DataElement dataElement,
String address) {
- List values = cache.get(address, jsonBranch.getJsonPath(), jsonFragment);
+ List values = cache.get(address, dataElement.getPath(), jsonFragment);
Map languages = new TreeMap<>();
Set individualLanguages = new HashSet<>();
if (values != null && !values.isEmpty()) {
@@ -160,7 +160,7 @@ private void extractLanguageTags(Object jsonFragment,
increase(languages, LanguageSaturationType.NA);
}
- updateMaps(jsonBranch.getLabel(), transformLanguages(languages, individualLanguages.size()));
+ updateMaps(dataElement.getLabel(), transformLanguages(languages, individualLanguages.size()));
}
private void updateMaps(String label,
diff --git a/src/main/java/de/gwdg/metadataqa/api/calculator/solr/QaSolrClient.java b/src/main/java/de/gwdg/metadataqa/api/calculator/solr/QaSolrClient.java
index 950a2674..7d3e4fdd 100644
--- a/src/main/java/de/gwdg/metadataqa/api/calculator/solr/QaSolrClient.java
+++ b/src/main/java/de/gwdg/metadataqa/api/calculator/solr/QaSolrClient.java
@@ -1,6 +1,6 @@
package de.gwdg.metadataqa.api.calculator.solr;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.schema.Schema;
import de.gwdg.metadataqa.api.uniqueness.SolrClient;
import de.gwdg.metadataqa.api.uniqueness.UniquenessExtractor;
@@ -28,16 +28,16 @@ public QaSolrClient(SolrClient solrClient, Schema schema) {
private void initialize(Schema schema) {
solrFields = new ArrayList<>();
- for (JsonBranch jsonBranch : schema.getIndexFields()) {
- var field = new UniquenessField(jsonBranch.getLabel());
- field.setJsonPath(
- jsonBranch.getAbsoluteJsonPath().replace("[*]", "")
+ for (DataElement dataElement : schema.getIndexFields()) {
+ var field = new UniquenessField(dataElement.getLabel());
+ field.setPath(
+ dataElement.getAbsolutePath().replace("[*]", "")
);
- if (schema.getRecordId() != null && jsonBranch.equals(schema.getRecordId()))
+ if (schema.getRecordId() != null && dataElement.equals(schema.getRecordId()))
continue;
- String solrField = getSolrField(jsonBranch);
+ String solrField = getSolrField(dataElement);
field.setSolrField(solrField);
var solrResponse = solrClient.getSolrSearchResponse(solrField, "*");
@@ -51,8 +51,8 @@ private void initialize(Schema schema) {
}
}
- public static String getSolrField(JsonBranch jsonBranch) {
- String solrField = jsonBranch.getIndexField() != null ? jsonBranch.getIndexField() : jsonBranch.generateIndexField();
+ public static String getSolrField(DataElement dataElement) {
+ String solrField = dataElement.getIndexField() != null ? dataElement.getIndexField() : dataElement.generateIndexField();
if (solrField.endsWith("_txt")) {
solrField = solrField.replaceAll("_txt$", "_ss");
} else if (!solrField.endsWith(SUFFIX)) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/cli/App.java b/src/main/java/de/gwdg/metadataqa/api/cli/App.java
index d2ecc82a..85179124 100644
--- a/src/main/java/de/gwdg/metadataqa/api/cli/App.java
+++ b/src/main/java/de/gwdg/metadataqa/api/cli/App.java
@@ -75,7 +75,7 @@ public App(CommandLine cmd) throws IOException, CsvValidationException {
if (cmd.hasOption(HEADERS_CONFIG)) {
String[] headers = cmd.getOptionValues(HEADERS_CONFIG);
for (String h : headers) {
- this.schema.addExtractableField(h, this.schema.getPathByLabel(h).getJsonPath());
+ this.schema.addExtractableField(h, this.schema.getPathByLabel(h).getPath());
}
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/json/JsonBranch.java b/src/main/java/de/gwdg/metadataqa/api/json/DataElement.java
similarity index 61%
rename from src/main/java/de/gwdg/metadataqa/api/json/JsonBranch.java
rename to src/main/java/de/gwdg/metadataqa/api/json/DataElement.java
index 2033c8be..7b776d49 100644
--- a/src/main/java/de/gwdg/metadataqa/api/json/JsonBranch.java
+++ b/src/main/java/de/gwdg/metadataqa/api/json/DataElement.java
@@ -16,15 +16,15 @@
*
* @author Péter Király
*/
-public class JsonBranch implements Cloneable, Serializable {
+public class DataElement implements Cloneable, Serializable {
private String label;
- private String jsonPath;
+ private String path;
private List categories = new ArrayList<>();
private String solrFieldName;
- private JsonBranch parent = null;
- private JsonBranch identifier = null;
- private List children = new ArrayList<>();
+ private DataElement parent = null;
+ private DataElement identifier = null;
+ private List children = new ArrayList<>();
private boolean collection = false;
private boolean isActive = true;
private boolean isExtractable = false;
@@ -33,27 +33,27 @@ public class JsonBranch implements Cloneable, Serializable {
private Schema schema;
private String indexField;
- public JsonBranch(String label, String jsonPath, String solrFieldName) {
+ public DataElement(String label, String path, String solrFieldName) {
this.label = label;
- this.jsonPath = jsonPath;
+ this.path = path;
this.solrFieldName = solrFieldName;
}
- public JsonBranch(String jsonPath) { // String... categories
- this.label = jsonPath;
- this.jsonPath = jsonPath;
+ public DataElement(String path) { // String... categories
+ this.label = path;
+ this.path = path;
// setCategories(Arrays.asList(categories));
}
- public JsonBranch(String label, String jsonPath) { // String... categories
+ public DataElement(String label, String path) { // String... categories
this.label = label;
- this.jsonPath = jsonPath;
+ this.path = path;
// setCategories(Arrays.asList(categories));
}
- public JsonBranch(String label, JsonBranch parent, String jsonPath) { // String... categories
+ public DataElement(String label, DataElement parent, String path) { // String... categories
this.label = label;
- this.jsonPath = jsonPath;
+ this.path = path;
// setCategories(Arrays.asList(categories));
setParent(parent);
}
@@ -62,67 +62,67 @@ public String getLabel() {
return label;
}
- public JsonBranch setLabel(String label) {
+ public DataElement setLabel(String label) {
this.label = label;
return this;
}
- public String getJsonPath() {
- return jsonPath;
+ public String getPath() {
+ return path;
}
- public JsonBranch setJsonPath(String jsonPath) {
- this.jsonPath = jsonPath;
+ public DataElement setPath(String path) {
+ this.path = path;
return this;
}
- public String getAbsoluteJsonPath() {
+ public String getAbsolutePath() {
Format format = hasFormat() ? schema.getFormat() : Format.JSON;
- return getAbsoluteJsonPath(format);
+ return getAbsolutePath(format);
}
public boolean hasFormat() {
return schema != null && schema.getFormat() != null;
}
- public String getAbsoluteJsonPath(Format format) {
+ public String getAbsolutePath(Format format) {
if (getParent() != null) {
if (format.equals(Format.JSON)) {
- return getParent().getJsonPath() + getJsonPath().replace("$.", "[*]");
+ return getParent().getPath() + getPath().replace("$.", "[*]");
} else if (format.equals(Format.XML)) {
- return getParent().getJsonPath() + "/" + getJsonPath();
+ return getParent().getPath() + "/" + getPath();
}
}
- return getJsonPath();
+ return getPath();
}
- public String getAbsoluteJsonPath(int i) {
+ public String getAbsolutePath(int i) {
if (getParent() != null) {
- String parentPath = getParent().getJsonPath();
+ String parentPath = getParent().getPath();
String currentPath = (i == -1 || parentPath.endsWith("[0]"))
- ? getJsonPath().replace("$.", "")
- : getJsonPath().replace("$.", "[" + i + "]");
+ ? getPath().replace("$.", "")
+ : getPath().replace("$.", "[" + i + "]");
return parentPath + currentPath;
}
- return getJsonPath();
+ return getPath();
}
public List getCategories() {
return categories;
}
- public JsonBranch setCategories(Category... categories) {
+ public DataElement setCategories(Category... categories) {
List categories2 = new ArrayList<>();
for (Category category : categories)
categories2.add(category.toString());
return setCategories(categories2);
}
- public JsonBranch setCategories(String... categories) {
+ public DataElement setCategories(String... categories) {
return setCategories(Arrays.asList(categories));
}
- public JsonBranch setCategories(List categories) {
+ public DataElement setCategories(List categories) {
this.categories = categories;
if (categories.contains(Category.MANDATORY.toString()))
isMandatory = true;
@@ -133,33 +133,33 @@ public String getSolrFieldName() {
return solrFieldName;
}
- public JsonBranch setSolrFieldName(String solrFieldName) {
+ public DataElement setSolrFieldName(String solrFieldName) {
this.solrFieldName = solrFieldName;
return this;
}
- public JsonBranch getParent() {
+ public DataElement getParent() {
return parent;
}
- public JsonBranch setParent(JsonBranch parent) {
+ public DataElement setParent(DataElement parent) {
this.parent = parent;
this.parent.addChild(this);
return this;
}
- public JsonBranch addChild(JsonBranch child) {
+ public DataElement addChild(DataElement child) {
if (!this.children.contains(child)) {
this.children.add(child);
}
return this;
}
- public List getChildren() {
+ public List getChildren() {
return children;
}
- public JsonBranch setChildren(List children) {
+ public DataElement setChildren(List children) {
this.children = children;
return this;
}
@@ -168,16 +168,16 @@ public boolean isCollection() {
return collection;
}
- public JsonBranch setCollection(boolean collection) {
+ public DataElement setCollection(boolean collection) {
this.collection = collection;
return this;
}
- public JsonBranch getIdentifier() {
+ public DataElement getIdentifier() {
return identifier;
}
- public JsonBranch setIdentifier(JsonBranch identifier) {
+ public DataElement setIdentifier(DataElement identifier) {
this.identifier = identifier;
return this;
}
@@ -186,7 +186,7 @@ public boolean isActive() {
return isActive;
}
- public JsonBranch setActive(boolean active) {
+ public DataElement setActive(boolean active) {
isActive = active;
return this;
}
@@ -195,12 +195,12 @@ public boolean isExtractable() {
return isExtractable;
}
- public JsonBranch setExtractable() {
+ public DataElement setExtractable() {
isExtractable = true;
return this;
}
- public JsonBranch setExtractable(boolean extractable) {
+ public DataElement setExtractable(boolean extractable) {
isExtractable = extractable;
return this;
}
@@ -209,19 +209,19 @@ public List getRules() {
return rules;
}
- public JsonBranch addRule(Rule rule) {
+ public DataElement addRule(Rule rule) {
if (this.rules == null)
this.rules = new ArrayList<>();
this.rules.add(rule);
return this;
}
- public JsonBranch setRule(List rules) {
+ public DataElement setRule(List rules) {
this.rules = rules;
return this;
}
- public JsonBranch setRules(List rules) {
+ public DataElement setRules(List rules) {
this.rules = rules;
return this;
}
@@ -232,9 +232,9 @@ public boolean isMandatory() {
@Override
public String toString() {
- return "JsonBranch{"
+ return "DataElement{"
+ "label=" + label
- + ", jsonPath=" + jsonPath
+ + ", path=" + path
+ ", categories=" + categories
+ ", solrFieldName=" + solrFieldName
+ ", parent=" + (parent == null ? "null" : parent.getLabel())
@@ -244,13 +244,13 @@ public String toString() {
+ '}';
}
- public static JsonBranch copy(JsonBranch other) throws CloneNotSupportedException {
- JsonBranch cloned = (JsonBranch) SerializationUtils.clone(other);
+ public static DataElement copy(DataElement other) throws CloneNotSupportedException {
+ DataElement cloned = (DataElement) SerializationUtils.clone(other);
if (other.children != null && !other.children.isEmpty()) {
- List clonedChildren = new ArrayList<>();
- for (JsonBranch child : other.children) {
- JsonBranch clonedChild = (JsonBranch) SerializationUtils.clone(child);
+ List clonedChildren = new ArrayList<>();
+ for (DataElement child : other.children) {
+ DataElement clonedChild = (DataElement) SerializationUtils.clone(child);
clonedChild.parent = cloned;
clonedChildren.add(clonedChild);
}
@@ -272,7 +272,7 @@ public String getIndexField() {
return indexField;
}
- public JsonBranch setIndexField(String indexField) {
+ public DataElement setIndexField(String indexField) {
this.indexField = indexField;
return this;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/json/FieldGroup.java b/src/main/java/de/gwdg/metadataqa/api/json/FieldGroup.java
index 43aff5b4..22fd0339 100644
--- a/src/main/java/de/gwdg/metadataqa/api/json/FieldGroup.java
+++ b/src/main/java/de/gwdg/metadataqa/api/json/FieldGroup.java
@@ -20,7 +20,7 @@
public class FieldGroup {
/**
- * The list of fields as in the label of JsonBranch objects.
+ * The list of fields as in the label of DataElement objects.
*/
private List fields;
@@ -35,9 +35,9 @@ public class FieldGroup {
* @param sCategory
* A sub-dimension of completeness
* @param sFields
- * The field names as in the label of JsonBranch objects
+ * The field names as in the label of DataElement objects
*
- * @see JsonBranch
+ * @see DataElement
*/
public FieldGroup(String sCategory, List sFields) {
this.category = sCategory;
diff --git a/src/main/java/de/gwdg/metadataqa/api/model/Category.java b/src/main/java/de/gwdg/metadataqa/api/model/Category.java
index 41d6c966..2de0edd1 100644
--- a/src/main/java/de/gwdg/metadataqa/api/model/Category.java
+++ b/src/main/java/de/gwdg/metadataqa/api/model/Category.java
@@ -1,6 +1,6 @@
package de.gwdg.metadataqa.api.model;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import java.util.ArrayList;
import java.util.Collection;
@@ -27,11 +27,11 @@ public enum Category {
this.name = name;
}
- public static List extractCategories(Collection paths) {
+ public static List extractCategories(Collection paths) {
return extractCategories(paths, false);
}
- public static List extractCategories(Collection paths,
+ public static List extractCategories(Collection paths,
boolean reorder) {
List existingCategories = extractExistingCategories(paths);
@@ -41,11 +41,11 @@ public static List extractCategories(Collection paths,
return existingCategories;
}
- private static List extractExistingCategories(Collection paths) {
+ private static List extractExistingCategories(Collection dataElements) {
List existingCategories = new ArrayList<>();
- for (JsonBranch branch : paths)
- if (branch.isActive())
- for (String category : branch.getCategories())
+ for (DataElement dataElement : dataElements)
+ if (dataElement.isActive())
+ for (String category : dataElement.getCategories())
if (!existingCategories.contains(category))
existingCategories.add(category);
diff --git a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/BasePathCache.java b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/BasePathCache.java
index 02d0be48..d8b2bdf3 100644
--- a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/BasePathCache.java
+++ b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/BasePathCache.java
@@ -15,26 +15,26 @@ public abstract class BasePathCache implements PathC
protected final Map typedCache = new HashMap<>();
protected final Map fragmentCache = new HashMap<>();
- abstract void set(String address, String jsonPath, Object jsonFragment, Class clazz);
+ abstract void set(String address, String path, Object jsonFragment, Class clazz);
- public List get(String jsonPath) {
- return get(jsonPath, jsonPath, null, null);
+ public List get(String path) {
+ return get(path, path, null, null);
}
- public E get(String jsonPath, Class clazz) {
- if (!typedCache.containsKey(jsonPath)) {
- set(jsonPath, jsonPath, null, clazz);
+ public E get(String path, Class clazz) {
+ if (!typedCache.containsKey(path)) {
+ set(path, path, null, clazz);
}
- return (E) typedCache.get(jsonPath);
+ return (E) typedCache.get(path);
}
- public List get(String address, String jsonPath, Object jsonFragment) {
- return get(address, jsonPath, jsonFragment, null);
+ public List get(String address, String path, Object jsonFragment) {
+ return get(address, path, jsonFragment, null);
}
- public List get(String address, String jsonPath, Object jsonFragment, Class clazz) {
+ public List get(String address, String path, Object jsonFragment, Class clazz) {
if (!cache.containsKey(address)) {
- set(address, jsonPath, jsonFragment, clazz);
+ set(address, path, jsonFragment, clazz);
}
return cache.get(address);
}
@@ -43,16 +43,16 @@ public List get(String address, String jsonPath, Object jsonFragment, Class c
* Get a JSON fragment from cache.
*
* @param address - a unique address for cahce
- * @param jsonPath - a JSON path expression
+ * @param path - a JSON path expression
* @param jsonFragment - a JSON fragment in which the path should be searched for
*
* @return
* The JSON fragment
*/
- public Object getFragment(String address, String jsonPath, Object jsonFragment) {
+ public Object getFragment(String address, String path, Object jsonFragment) {
Object jsonFragment2 = null;
if (!fragmentCache.containsKey(address)) {
- jsonFragment2 = read(jsonPath, jsonFragment);
+ jsonFragment2 = read(path, jsonFragment);
fragmentCache.put(address, jsonFragment2);
} else {
jsonFragment2 = fragmentCache.get(address);
diff --git a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/CsvPathCache.java b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/CsvPathCache.java
index 82c9ce84..ec67b662 100644
--- a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/CsvPathCache.java
+++ b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/CsvPathCache.java
@@ -40,8 +40,8 @@ record = csvReader.createMap(input);
}
@Override
- protected void set(String address, String jsonPath, Object jsonFragment, Class clazz) {
- List instances = read(jsonPath, jsonFragment);
+ protected void set(String address, String path, Object jsonFragment, Class clazz) {
+ List instances = read(path, jsonFragment);
cache.put(address, instances);
}
@@ -63,13 +63,13 @@ public Object getFragment(String path) {
* Get a JSON fragment from cache.
*
* @param address - a unique address for cache
- * @param jsonPath - a JSON path expression
+ * @param path - a JSON path expression
* @param jsonFragment - a JSON fragment in which the path should be searched for
*
* @return
* The JSON fragment
*/
- public Object getFragment(String address, String jsonPath, Object jsonFragment) {
+ public Object getFragment(String address, String path, Object jsonFragment) {
return content;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/JsonPathCache.java b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/JsonPathCache.java
index e2411d1d..1c426926 100644
--- a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/JsonPathCache.java
+++ b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/JsonPathCache.java
@@ -42,12 +42,12 @@ public JsonPathCache(Object jsonDocument) {
}
@Override
- protected void set(String address, String jsonPath, Object jsonFragment, Class clazz) {
+ protected void set(String address, String path, Object jsonFragment, Class clazz) {
List instances = null;
- Object value = read(jsonPath, jsonFragment);
+ Object value = read(path, jsonFragment);
if (value != null) {
if (clazz == null) {
- instances = (List) JsonUtils.extractFieldInstanceList(value, recordId, jsonPath);
+ instances = (List) JsonUtils.extractFieldInstanceList(value, recordId, path);
} else {
if (value instanceof JSONArray) {
typedCache.put(address, clazz.cast(((JSONArray) value).get(0)));
@@ -59,31 +59,31 @@ protected void set(String address, String jsonPath, Object jsonFragment, Class c
cache.put(address, instances);
}
- public Object read(String jsonPath, Object jsonFragment) {
+ public Object read(String path, Object jsonFragment) {
Object value = null;
try {
if (jsonFragment != null) {
- value = JsonPath.read(jsonFragment, jsonPath);
+ value = JsonPath.read(jsonFragment, path);
} else {
- value = JsonPath.read(document, jsonPath);
+ value = JsonPath.read(document, path);
}
} catch (PathNotFoundException e) {
- // LOGGER.severe("PathNotFound: " + jsonPath + " " + e.getLocalizedMessage() + extractRelevantPath(e));
+ // LOGGER.severe("PathNotFound: " + path + " " + e.getLocalizedMessage() + extractRelevantPath(e));
} catch (InvalidPathException e) {
LOGGER.log(Level.SEVERE, "Invalid Path: {0} {1}\n{2}", new Object[]{
- jsonPath, e.getLocalizedMessage(), ExceptionUtils.extractRelevantPath(e)
+ path, e.getLocalizedMessage(), ExceptionUtils.extractRelevantPath(e)
});
}
return value;
}
- public Object getFragment(String jsonPath) {
+ public Object getFragment(String path) {
Object jsonFragment = null;
- if (!fragmentCache.containsKey(jsonPath)) {
- jsonFragment = read(jsonPath, null);
- fragmentCache.put(jsonPath, jsonFragment);
+ if (!fragmentCache.containsKey(path)) {
+ jsonFragment = read(path, null);
+ fragmentCache.put(path, jsonFragment);
} else {
- jsonFragment = fragmentCache.get(jsonPath);
+ jsonFragment = fragmentCache.get(path);
}
return jsonFragment;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/XmlPathCache.java b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/XmlPathCache.java
index a1d85bac..ff2138f9 100644
--- a/src/main/java/de/gwdg/metadataqa/api/model/pathcache/XmlPathCache.java
+++ b/src/main/java/de/gwdg/metadataqa/api/model/pathcache/XmlPathCache.java
@@ -5,7 +5,7 @@
import com.jayway.jsonpath.PathNotFoundException;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.util.ExceptionUtils;
-import de.gwdg.metadataqa.api.xml.OaiPmhXPath;
+import de.gwdg.metadataqa.api.xml.XPathWrapper;
import java.util.List;
import java.util.logging.Level;
@@ -25,15 +25,15 @@ public class XmlPathCache extends BasePathCache {
);
private static final long serialVersionUID = 3351744750302199667L;
- OaiPmhXPath oaiPmhXPath;
+ XPathWrapper xPathWrapper;
public XmlPathCache(String content) throws InvalidJsonException {
this.content = content;
- oaiPmhXPath = new OaiPmhXPath(content);
+ xPathWrapper = new XPathWrapper(content);
}
- protected void set(String address, String jsonPath, Object jsonFragment, Class clazz) {
- List instances = read(jsonPath, jsonFragment);
+ protected void set(String address, String path, Object jsonFragment, Class clazz) {
+ List instances = read(path, jsonFragment);
cache.put(address, instances);
}
@@ -41,9 +41,9 @@ public List read(String path, Object jsonFragment) {
List value = null;
try {
if (jsonFragment != null) {
- value = (List) oaiPmhXPath.extractFieldInstanceList(jsonFragment, path);
+ value = (List) xPathWrapper.extractFieldInstanceList(jsonFragment, path);
} else {
- value = (List) oaiPmhXPath.extractFieldInstanceList(path);
+ value = (List) xPathWrapper.extractFieldInstanceList(path);
}
} catch (PathNotFoundException e) {
// LOGGER.severe("PathNotFound: " + jsonPath + " " + e.getLocalizedMessage() + extractRelevantPath(e));
@@ -58,7 +58,7 @@ public List read(String path, Object jsonFragment) {
public Object getFragment(String path) {
Object jsonFragment = null;
if (!fragmentCache.containsKey(path)) {
- jsonFragment = oaiPmhXPath.extractNodes(path);
+ jsonFragment = xPathWrapper.extractNodes(path);
fragmentCache.put(path, jsonFragment);
} else {
jsonFragment = fragmentCache.get(path);
diff --git a/src/main/java/de/gwdg/metadataqa/api/problemcatalog/skos/AmbiguousPrefLabel.java b/src/main/java/de/gwdg/metadataqa/api/problemcatalog/skos/AmbiguousPrefLabel.java
index 5740ffc0..8c3a2fe1 100644
--- a/src/main/java/de/gwdg/metadataqa/api/problemcatalog/skos/AmbiguousPrefLabel.java
+++ b/src/main/java/de/gwdg/metadataqa/api/problemcatalog/skos/AmbiguousPrefLabel.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.problemcatalog.skos;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.EdmFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.problemcatalog.ProblemCatalog;
@@ -40,8 +40,8 @@ public AmbiguousPrefLabel(ProblemCatalog problemCatalog) {
public void update(PathCache cache, FieldCounter results) {
var value = 0;
for (String label : LABELS) {
- JsonBranch branch = ((Schema) schema).getPathByLabel(label);
- String parentPath = branch.getParent().getJsonPath();
+ DataElement branch = ((Schema) schema).getPathByLabel(label);
+ String parentPath = branch.getParent().getPath();
Object rawEntityFragment = cache.getFragment(parentPath);
if (rawEntityFragment != null) {
List entities = Converter.jsonObjectToList(rawEntityFragment, (Schema) schema);
@@ -53,8 +53,8 @@ public void update(PathCache cache, FieldCounter results) {
results.put(NAME, (double) value);
}
- private int countPerEntity(int entityCounter, JsonBranch branch, PathCache cache) {
- List subjects = cache.get(branch.getAbsoluteJsonPath(entityCounter));
+ private int countPerEntity(int entityCounter, DataElement branch, PathCache cache) {
+ List subjects = cache.get(branch.getAbsolutePath(entityCounter));
Map labelCounter = countLabelsPerFields(subjects);
return countAmbiguousPrefLabels(labelCounter);
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/logical/AndChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/logical/AndChecker.java
index a94a5af3..5618e2b9 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/logical/AndChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/logical/AndChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.logical;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -20,11 +20,11 @@ public class AndChecker extends LogicalChecker {
* @param field The field
* @param checkers The list of checkers
*/
- public AndChecker(JsonBranch field, List checkers) {
+ public AndChecker(DataElement field, List checkers) {
this(field, field.getLabel(), checkers);
}
- public AndChecker(JsonBranch field, String header, List checkers) {
+ public AndChecker(DataElement field, String header, List checkers) {
super(field,header + ":" + PREFIX + ":" + getChildrenHeader(checkers));
this.checkers = checkers;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/logical/LogicalChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/logical/LogicalChecker.java
index 71211d96..a8934359 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/logical/LogicalChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/logical/LogicalChecker.java
@@ -1,6 +1,6 @@
package de.gwdg.metadataqa.api.rule.logical;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.rule.BaseRuleChecker;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import org.apache.commons.lang3.StringUtils;
@@ -10,10 +10,10 @@
public abstract class LogicalChecker extends BaseRuleChecker {
- protected JsonBranch field;
+ protected DataElement field;
protected List checkers;
- public LogicalChecker(JsonBranch field, String header) {
+ public LogicalChecker(DataElement field, String header) {
this.field = field;
this.header = header;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/logical/NotChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/logical/NotChecker.java
index cacd9483..267c5608 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/logical/NotChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/logical/NotChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.logical;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -20,11 +20,11 @@ public class NotChecker extends LogicalChecker {
* @param field The field
* @param checkers The list of checkers
*/
- public NotChecker(JsonBranch field, List checkers) {
+ public NotChecker(DataElement field, List checkers) {
this(field, field.getLabel(), checkers);
}
- public NotChecker(JsonBranch field, String header, List checkers) {
+ public NotChecker(DataElement field, String header, List checkers) {
super(field,header + ":" + PREFIX + ":" + getChildrenHeader(checkers));
this.checkers = checkers;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/logical/OrChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/logical/OrChecker.java
index 5b9aa145..da4c6572 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/logical/OrChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/logical/OrChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.logical;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -23,11 +23,11 @@ public class OrChecker extends LogicalChecker {
* @param field The field
* @param checkers The list of checkers
*/
- public OrChecker(JsonBranch field, List checkers) {
+ public OrChecker(DataElement field, List checkers) {
this(field, field.getLabel(), checkers);
}
- public OrChecker(JsonBranch field, String header, List checkers) {
+ public OrChecker(DataElement field, String header, List checkers) {
super(field, header + ":" + PREFIX + ":" + getChildrenHeader(checkers));
this.checkers = checkers;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/DisjointChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/DisjointChecker.java
index 626d518d..6e01fbbf 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/DisjointChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/DisjointChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.pairchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -15,7 +15,7 @@ public class DisjointChecker extends PropertyPairChecker {
private static final long serialVersionUID = -2921501305139849002L;
public static final String PREFIX = "disjoint";
- public DisjointChecker(JsonBranch field1, JsonBranch field2) {
+ public DisjointChecker(DataElement field1, DataElement field2) {
super(field1, field2, PREFIX);
}
@@ -26,8 +26,8 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = false;
- List instances1 = cache.get(field1.getAbsoluteJsonPath().replace("[*]", ""));
- List instances2 = cache.get(field2.getAbsoluteJsonPath().replace("[*]", ""));
+ List instances1 = cache.get(field1.getAbsolutePath().replace("[*]", ""));
+ List instances2 = cache.get(field2.getAbsolutePath().replace("[*]", ""));
if (instances1 != null && !instances1.isEmpty() && instances2 != null && !instances2.isEmpty()) {
for (XmlFieldInstance instance1 : instances1) {
if (instance1.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/EqualityChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/EqualityChecker.java
index f719e196..e4f9bfe6 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/EqualityChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/EqualityChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.pairchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -16,7 +16,7 @@ public class EqualityChecker extends PropertyPairChecker {
public static final String PREFIX = "equals";
protected String fixedValue;
- public EqualityChecker(JsonBranch field1, JsonBranch field2) {
+ public EqualityChecker(DataElement field1, DataElement field2) {
super(field1, field2, PREFIX);
}
@@ -27,8 +27,8 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances1 = cache.get(field1.getAbsoluteJsonPath().replace("[*]", ""));
- List instances2 = cache.get(field2.getAbsoluteJsonPath().replace("[*]", ""));
+ List instances1 = cache.get(field1.getAbsolutePath().replace("[*]", ""));
+ List instances2 = cache.get(field2.getAbsolutePath().replace("[*]", ""));
if (instances1 != null && !instances1.isEmpty() && instances2 != null && !instances2.isEmpty()) {
for (XmlFieldInstance instance1 : instances1) {
if (instance1.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/LessThanPairChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/LessThanPairChecker.java
index a1c6bd0b..1697edc6 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/LessThanPairChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/LessThanPairChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.pairchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -34,7 +34,7 @@ public String getPrefix() {
}
private static final Pattern isNumericPattern = Pattern.compile("^\\d+(\\.\\d+)?$");
- public LessThanPairChecker(JsonBranch field1, JsonBranch field2, TYPE type) {
+ public LessThanPairChecker(DataElement field1, DataElement field2, TYPE type) {
super(field1, field2, type.prefix);
this.type = type;
}
@@ -46,8 +46,8 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = false;
- List instances1 = cache.get(field1.getAbsoluteJsonPath().replace("[*]", ""));
- List instances2 = cache.get(field2.getAbsoluteJsonPath().replace("[*]", ""));
+ List instances1 = cache.get(field1.getAbsolutePath().replace("[*]", ""));
+ List instances2 = cache.get(field2.getAbsolutePath().replace("[*]", ""));
if (instances1 != null && !instances1.isEmpty() && instances2 != null && !instances2.isEmpty()) {
for (XmlFieldInstance instance1 : instances1) {
if (instance1.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/PropertyPairChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/PropertyPairChecker.java
index 68a4aad6..fe89e9a7 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/PropertyPairChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/pairchecker/PropertyPairChecker.java
@@ -1,15 +1,15 @@
package de.gwdg.metadataqa.api.rule.pairchecker;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.rule.BaseRuleChecker;
public abstract class PropertyPairChecker extends BaseRuleChecker {
private static final long serialVersionUID = -6579708841667005135L;
- protected JsonBranch field1;
- protected JsonBranch field2;
+ protected DataElement field1;
+ protected DataElement field2;
- protected PropertyPairChecker(JsonBranch field1, JsonBranch field2, String prefix) {
+ protected PropertyPairChecker(DataElement field1, DataElement field2, String prefix) {
if (field1 == null)
throw new IllegalArgumentException("field1 should not be null");
if (field2 == null)
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ContentTypeChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ContentTypeChecker.java
index 97a2435a..bdaa5f5c 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ContentTypeChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ContentTypeChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -20,11 +20,11 @@ public class ContentTypeChecker extends SingleFieldChecker {
public static final String PREFIX = "contentType";
protected List fixedValues;
- public ContentTypeChecker(JsonBranch field, List contentType) {
+ public ContentTypeChecker(DataElement field, List contentType) {
this(field, field.getLabel(), contentType);
}
- public ContentTypeChecker(JsonBranch field, String header, List fixedValues) {
+ public ContentTypeChecker(DataElement field, String header, List fixedValues) {
super(field, header + ":" + PREFIX);
this.fixedValues = fixedValues;
}
@@ -36,7 +36,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/DependencyChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/DependencyChecker.java
index 46cc9110..dc18e5a4 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/DependencyChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/DependencyChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -19,11 +19,11 @@ public class DependencyChecker extends SingleFieldChecker {
public static final String PREFIX = "dependency";
protected List dependencies;
- public DependencyChecker(JsonBranch field, List dependencies) {
+ public DependencyChecker(DataElement field, List dependencies) {
this(field, field.getLabel(), dependencies);
}
- public DependencyChecker(JsonBranch field, String header, List dependencies) {
+ public DependencyChecker(DataElement field, String header, List dependencies) {
super(field, header + ":" + PREFIX);
this.dependencies = dependencies;
}
@@ -44,7 +44,7 @@ public void update(PathCache cache, FieldCounter localResults
// boolean debug = id.equals("Q-4.3");
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/EnumerationChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/EnumerationChecker.java
index 890e45cc..f0c6dac7 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/EnumerationChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/EnumerationChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -16,11 +16,11 @@ public class EnumerationChecker extends SingleFieldChecker {
public static final String PREFIX = "in";
protected List fixedValues;
- public EnumerationChecker(JsonBranch field, List fixedValues) {
+ public EnumerationChecker(DataElement field, List fixedValues) {
this(field, field.getLabel(), fixedValues);
}
- public EnumerationChecker(JsonBranch field, String header, List fixedValues) {
+ public EnumerationChecker(DataElement field, String header, List fixedValues) {
super(field, header + ":" + PREFIX);
this.fixedValues = fixedValues;
}
@@ -32,7 +32,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/HasValueChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/HasValueChecker.java
index b99c5af8..90e1a070 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/HasValueChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/HasValueChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -20,11 +20,11 @@ public class HasValueChecker extends SingleFieldChecker {
* @param field The field
* @param fixedValue The fixed value check against
*/
- public HasValueChecker(JsonBranch field, String fixedValue) {
+ public HasValueChecker(DataElement field, String fixedValue) {
this(field, field.getLabel(), fixedValue);
}
- public HasValueChecker(JsonBranch field, String header, String fixedValue) {
+ public HasValueChecker(DataElement field, String header, String fixedValue) {
super(field, header + ":" + PREFIX);
this.fixedValue = fixedValue;
}
@@ -36,7 +36,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = false;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ImageDimensionChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ImageDimensionChecker.java
index 42d22a29..0f7ad043 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ImageDimensionChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/ImageDimensionChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -22,11 +22,11 @@ public class ImageDimensionChecker extends SingleFieldChecker {
public static final String PREFIX = "imageDimension";
protected Dimension dimensionRule;
- public ImageDimensionChecker(JsonBranch field, Dimension dimension) {
+ public ImageDimensionChecker(DataElement field, Dimension dimension) {
this(field, field.getLabel(), dimension);
}
- public ImageDimensionChecker(JsonBranch field, String header, Dimension dimension) {
+ public ImageDimensionChecker(DataElement field, String header, Dimension dimension) {
super(field, header + ":" + PREFIX);
this.dimensionRule = dimension;
}
@@ -38,7 +38,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxCountChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxCountChecker.java
index 443d8e91..ce5a98ee 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxCountChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxCountChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
import de.gwdg.metadataqa.api.rule.RuleCheckingOutputStatus;
@@ -15,17 +15,17 @@ public class MaxCountChecker extends SingleFieldChecker {
private boolean allowEmptyInstances = false;
protected Integer maxCount;
- public MaxCountChecker(JsonBranch field, int maxCount) {
+ public MaxCountChecker(DataElement field, int maxCount) {
this(field, field.getLabel(), maxCount);
}
- public MaxCountChecker(JsonBranch field, int maxCount, boolean allowEmptyInstances) {
+ public MaxCountChecker(DataElement field, int maxCount, boolean allowEmptyInstances) {
this(field, field.getLabel(), maxCount);
this.allowEmptyInstances = allowEmptyInstances;
}
- public MaxCountChecker(JsonBranch field, String header, int maxCount) {
+ public MaxCountChecker(DataElement field, String header, int maxCount) {
super(field, header + ":" + PREFIX);
this.maxCount = maxCount;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxLengthChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxLengthChecker.java
index d6be0318..2f34bfc2 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxLengthChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxLengthChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -16,11 +16,11 @@ public class MaxLengthChecker extends SingleFieldChecker {
public static final String PREFIX = "maxLength";
protected Integer maxLength;
- public MaxLengthChecker(JsonBranch field, Integer maxLength) {
+ public MaxLengthChecker(DataElement field, Integer maxLength) {
this(field, field.getLabel(), maxLength);
}
- public MaxLengthChecker(JsonBranch field, String header, Integer maxLength) {
+ public MaxLengthChecker(DataElement field, String header, Integer maxLength) {
super(field, header + ":" + PREFIX);
this.maxLength = maxLength;
}
@@ -32,7 +32,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxWordsChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxWordsChecker.java
index cd9063bb..9f2ffc97 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxWordsChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MaxWordsChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -16,11 +16,11 @@ public class MaxWordsChecker extends SingleFieldChecker {
public static final String PREFIX = "maxWords";
protected Integer maxWords;
- public MaxWordsChecker(JsonBranch field, int maxWords) {
+ public MaxWordsChecker(DataElement field, int maxWords) {
this(field, field.getLabel(), maxWords);
}
- public MaxWordsChecker(JsonBranch field, String header, int maxWords) {
+ public MaxWordsChecker(DataElement field, String header, int maxWords) {
super(field, header + ":" + PREFIX);
this.maxWords = maxWords;
}
@@ -32,7 +32,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinCountChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinCountChecker.java
index 6484f00e..c10d5c9a 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinCountChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinCountChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
import de.gwdg.metadataqa.api.rule.RuleCheckingOutputStatus;
@@ -15,16 +15,16 @@ public class MinCountChecker extends SingleFieldChecker {
protected Integer minCount;
protected boolean allowEmptyInstances = false;
- public MinCountChecker(JsonBranch field, Integer minCount) {
+ public MinCountChecker(DataElement field, Integer minCount) {
this(field, field.getLabel(), minCount);
}
- public MinCountChecker(JsonBranch field, Integer minCount, boolean allowEmptyInstances) {
+ public MinCountChecker(DataElement field, Integer minCount, boolean allowEmptyInstances) {
this(field, field.getLabel(), minCount);
this.allowEmptyInstances = allowEmptyInstances;
}
- public MinCountChecker(JsonBranch field, String header, Integer minCount) {
+ public MinCountChecker(DataElement field, String header, Integer minCount) {
super(field, header + ":" + PREFIX);
this.minCount = minCount;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinLengthChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinLengthChecker.java
index 8823e83b..905abd3e 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinLengthChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinLengthChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -16,11 +16,11 @@ public class MinLengthChecker extends SingleFieldChecker {
public static final String PREFIX = "minLength";
protected Integer minLength;
- public MinLengthChecker(JsonBranch field, Integer minLength) {
+ public MinLengthChecker(DataElement field, Integer minLength) {
this(field, field.getLabel(), minLength);
}
- public MinLengthChecker(JsonBranch field, String header, Integer minLength) {
+ public MinLengthChecker(DataElement field, String header, Integer minLength) {
super(field, header + ":" + PREFIX);
this.minLength = minLength;
}
@@ -32,7 +32,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinWordsChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinWordsChecker.java
index 467d08f1..83f0ab22 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinWordsChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/MinWordsChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -17,11 +17,11 @@ public class MinWordsChecker extends SingleFieldChecker {
public static final String PREFIX = "minWords";
protected Integer minWords;
- public MinWordsChecker(JsonBranch field, int minWords) {
+ public MinWordsChecker(DataElement field, int minWords) {
this(field, field.getLabel(), minWords);
}
- public MinWordsChecker(JsonBranch field, String header, int minWords) {
+ public MinWordsChecker(DataElement field, String header, int minWords) {
super(field, header + ":" + PREFIX);
this.minWords = minWords;
}
@@ -33,7 +33,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/NumericValueChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/NumericValueChecker.java
index e8345a9c..a716f474 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/NumericValueChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/NumericValueChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -9,7 +9,6 @@
import de.gwdg.metadataqa.api.rule.RuleCheckingOutputType;
import java.util.List;
-import java.util.logging.Logger;
public class NumericValueChecker extends SingleFieldChecker {
@@ -31,11 +30,11 @@ public enum TYPE {
protected double limit;
protected TYPE type;
- public NumericValueChecker(JsonBranch field, int limit, TYPE type) {
+ public NumericValueChecker(DataElement field, int limit, TYPE type) {
this(field, (double) limit, type);
}
- public NumericValueChecker(JsonBranch field, double limit, TYPE type) {
+ public NumericValueChecker(DataElement field, double limit, TYPE type) {
super(field, field.getLabel() + ":" + type.prefix);
this.type = type;
this.limit = limit;
@@ -48,7 +47,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/PatternChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/PatternChecker.java
index 56c29502..c787e8ce 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/PatternChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/PatternChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -17,11 +17,11 @@ public class PatternChecker extends SingleFieldChecker {
public static final String PREFIX = "pattern";
protected Pattern pattern;
- public PatternChecker(JsonBranch field, String pattern) {
+ public PatternChecker(DataElement field, String pattern) {
this(field, field.getLabel(), pattern);
}
- public PatternChecker(JsonBranch field, String header, String pattern) {
+ public PatternChecker(DataElement field, String header, String pattern) {
super(field, header + ":" + PREFIX);
this.pattern = Pattern.compile(pattern);
}
@@ -33,7 +33,7 @@ public void update(PathCache cache, FieldCounter results, Rul
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/SingleFieldChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/SingleFieldChecker.java
index c663493a..42adad66 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/SingleFieldChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/SingleFieldChecker.java
@@ -1,13 +1,13 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.rule.BaseRuleChecker;
public abstract class SingleFieldChecker extends BaseRuleChecker {
- protected JsonBranch field;
+ protected DataElement field;
- public SingleFieldChecker(JsonBranch field, String header) {
+ public SingleFieldChecker(DataElement field, String header) {
this.field = field;
this.header = header;
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessChecker.java b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessChecker.java
index a9c1d0e8..fc5e0f46 100644
--- a/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessChecker.java
+++ b/src/main/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessChecker.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.rule.singlefieldchecker;
import de.gwdg.metadataqa.api.counter.FieldCounter;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.XmlFieldInstance;
import de.gwdg.metadataqa.api.model.pathcache.PathCache;
import de.gwdg.metadataqa.api.rule.RuleCheckerOutput;
@@ -19,11 +19,11 @@ public class UniquenessChecker extends SingleFieldChecker {
protected String solrField;
private SolrClient solrClient;
- public UniquenessChecker(JsonBranch field) {
+ public UniquenessChecker(DataElement field) {
this(field, field.getLabel());
}
- public UniquenessChecker(JsonBranch field, String header) {
+ public UniquenessChecker(DataElement field, String header) {
super(field, header + ":" + PREFIX);
this.solrField = field.getLabel().equals("recordId") ? "id" : field.getIndexField() + "_ss";
}
@@ -34,7 +34,7 @@ public void update(PathCache cache, FieldCounter results, Rul
LOGGER.info(this.getClass() + " " + this.id);
var allPassed = true;
var isNA = true;
- List instances = cache.get(field.getJsonPath());
+ List instances = cache.get(field.getPath());
if (instances != null && !instances.isEmpty()) {
for (XmlFieldInstance instance : instances) {
if (instance.hasValue()) {
diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/BaseSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/BaseSchema.java
index ab31d385..f60db1d7 100644
--- a/src/main/java/de/gwdg/metadataqa/api/schema/BaseSchema.java
+++ b/src/main/java/de/gwdg/metadataqa/api/schema/BaseSchema.java
@@ -2,7 +2,7 @@
import de.gwdg.metadataqa.api.configuration.schema.Rule;
import de.gwdg.metadataqa.api.json.FieldGroup;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.Category;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import org.apache.commons.lang3.StringUtils;
@@ -19,15 +19,15 @@ public class BaseSchema implements Schema, CsvAwareSchema, Serializable {
private static final long serialVersionUID = 6775942932769040511L;
private static final Logger LOGGER = Logger.getLogger(BaseSchema.class.getCanonicalName());
- private final Map paths = new LinkedHashMap<>();
- private final Map collectionPaths = new LinkedHashMap<>();
- private final Map directChildren = new LinkedHashMap<>();
+ private final Map paths = new LinkedHashMap<>();
+ private final Map collectionPaths = new LinkedHashMap<>();
+ private final Map directChildren = new LinkedHashMap<>();
private Map extractableFields = new LinkedHashMap<>();
private List fieldGroups = new ArrayList<>();
private List categories = null;
private List ruleCheckers;
- private List indexFields;
- private JsonBranch recordId;
+ private List indexFields;
+ private DataElement recordId;
private Format format;
private Map namespaces;
@@ -36,7 +36,7 @@ public BaseSchema() {
// initialize without parameters
}
- public BaseSchema addField(JsonBranch branch) {
+ public BaseSchema addField(DataElement branch) {
branch.setSchema(this);
paths.put(branch.getLabel(), branch);
@@ -47,13 +47,13 @@ public BaseSchema addField(JsonBranch branch) {
collectionPaths.put(branch.getLabel(), branch);
if (branch.isExtractable())
- addExtractableField(branch.getLabel(), branch.getJsonPath());
+ addExtractableField(branch.getLabel(), branch.getPath());
return this;
}
public BaseSchema addField(String fieldName) {
- addField(new JsonBranch(fieldName));
+ addField(new DataElement(fieldName));
return this;
}
@@ -75,22 +75,22 @@ public Format getFormat() {
}
@Override
- public List getCollectionPaths() {
+ public List getCollectionPaths() {
return new ArrayList(collectionPaths.values());
}
@Override
- public List getRootChildrenPaths() {
+ public List getRootChildrenPaths() {
return new ArrayList(directChildren.values());
}
@Override
- public List getPaths() {
+ public List getPaths() {
return new ArrayList<>(paths.values());
}
@Override
- public JsonBranch getPathByLabel(String label) {
+ public DataElement getPathByLabel(String label) {
return paths.get(label);
}
@@ -110,17 +110,17 @@ public List getNoLanguageFields() {
}
@Override
- public List getIndexFields() {
+ public List getIndexFields() {
if (indexFields == null) {
indexFields = new ArrayList<>();
- for (JsonBranch jsonBranch : getPaths()) {
- if (StringUtils.isNotBlank(jsonBranch.getIndexField())) {
- indexFields.add(jsonBranch);
- } else if (jsonBranch.getRules() != null) {
- for (Rule rule : jsonBranch.getRules()) {
+ for (DataElement dataElement : getPaths()) {
+ if (StringUtils.isNotBlank(dataElement.getIndexField())) {
+ indexFields.add(dataElement);
+ } else if (dataElement.getRules() != null) {
+ for (Rule rule : dataElement.getRules()) {
if (rule.getUnique() != null && rule.getUnique().equals(Boolean.TRUE)) {
- LOGGER.warning(jsonBranch + " does not have index field");
- indexFields.add(jsonBranch);
+ LOGGER.warning(dataElement + " does not have index field");
+ indexFields.add(dataElement);
}
}
}
@@ -140,8 +140,8 @@ public void setExtractableFields(Map extractableFields) {
}
@Override
- public void addExtractableField(String label, String jsonPath) {
- extractableFields.put(label, jsonPath);
+ public void addExtractableField(String label, String path) {
+ extractableFields.put(label, path);
}
@Override
@@ -163,8 +163,8 @@ public List getRuleCheckers() {
@Override
public List getHeader() {
List headers = new ArrayList<>();
- for (JsonBranch branch : paths.values()) {
- headers.add(branch.getJsonPath());
+ for (DataElement branch : paths.values()) {
+ headers.add(branch.getPath());
}
return headers;
}
@@ -191,11 +191,11 @@ public Map getNamespaces() {
}
@Override
- public JsonBranch getRecordId() {
+ public DataElement getRecordId() {
return recordId;
}
- public void setRecordId(JsonBranch recordId) {
+ public void setRecordId(DataElement recordId) {
this.recordId = recordId;
}
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/MarcJsonSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/MarcJsonSchema.java
index 2e0f6502..3db9b8bd 100644
--- a/src/main/java/de/gwdg/metadataqa/api/schema/MarcJsonSchema.java
+++ b/src/main/java/de/gwdg/metadataqa/api/schema/MarcJsonSchema.java
@@ -1,7 +1,7 @@
package de.gwdg.metadataqa.api.schema;
import de.gwdg.metadataqa.api.json.FieldGroup;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.model.Category;
import de.gwdg.metadataqa.api.rule.RuleChecker;
@@ -19,9 +19,9 @@
public class MarcJsonSchema implements Schema, ProblemCatalogSchema, Serializable {
private static final long serialVersionUID = -351328095358861985L;
- private static final Map PATHS = new LinkedHashMap<>();
- private static final Map COLLECTION_PATHS = new LinkedHashMap<>();
- private static final Map DIRECT_CHILDREN = new LinkedHashMap<>();
+ private static final Map PATHS = new LinkedHashMap<>();
+ private static final Map COLLECTION_PATHS = new LinkedHashMap<>();
+ private static final Map DIRECT_CHILDREN = new LinkedHashMap<>();
public static final String NOT_SUPPORTED_YET = "Not supported yet.";
private static Map extractableFields = new LinkedHashMap<>();
private static List categories = null;
@@ -34,251 +34,251 @@ public class MarcJsonSchema implements Schema, ProblemCatalogSchema, Serializabl
public static final String DATAFIELD_CHILDREN_PATTERN = "$.subfield[?(@.code == '%s')].content";
static {
- addPath(new JsonBranch("leader", "$.leader"));
- addPath(new JsonBranch("001", "$.controlfield[?(@.tag == '001')].content"));
- addPath(new JsonBranch("003", "$.controlfield[?(@.tag == '003')].content"));
- addPath(new JsonBranch("005", "$.controlfield[?(@.tag == '005')].content"));
- addPath(new JsonBranch("006", "$.controlfield[?(@.tag == '006')].content"));
- addPath(new JsonBranch("007", "$.controlfield[?(@.tag == '007')].content"));
- addPath(new JsonBranch("008", "$.controlfield[?(@.tag == '008')].content"));
-
- registerDatafieldBranch("010", "a", "b", "z", "8", "z");
- registerDatafieldBranch("013", "a", "c");
- registerDatafieldBranch("015", "2", "a", "z");
- registerDatafieldBranch("016", "2", "a");
- registerDatafieldBranch("017", "a", "b");
- registerDatafieldBranch("018", "a");
- registerDatafieldBranch("019", "a"); // ??? not in the standard!!!
- registerDatafieldBranch("020", "6", "9", "a", "b", "c", "z");
- registerDatafieldBranch("022", "a", "c", "y", "z");
- registerDatafieldBranch("024", "2", "9", "a", "c", "d", "z");
- registerDatafieldBranch("025", "a");
- registerDatafieldBranch("026", "a", "e");
- registerDatafieldBranch("027", "a");
- registerDatafieldBranch("028", "a", "b");
- registerDatafieldBranch("029", "a", "b", "c"); // ??? not in the standard!
- registerDatafieldBranch("030", "a", "z");
+ addPath(new DataElement("leader", "$.leader"));
+ addPath(new DataElement("001", "$.controlfield[?(@.tag == '001')].content"));
+ addPath(new DataElement("003", "$.controlfield[?(@.tag == '003')].content"));
+ addPath(new DataElement("005", "$.controlfield[?(@.tag == '005')].content"));
+ addPath(new DataElement("006", "$.controlfield[?(@.tag == '006')].content"));
+ addPath(new DataElement("007", "$.controlfield[?(@.tag == '007')].content"));
+ addPath(new DataElement("008", "$.controlfield[?(@.tag == '008')].content"));
+
+ registerDatafield("010", "a", "b", "z", "8", "z");
+ registerDatafield("013", "a", "c");
+ registerDatafield("015", "2", "a", "z");
+ registerDatafield("016", "2", "a");
+ registerDatafield("017", "a", "b");
+ registerDatafield("018", "a");
+ registerDatafield("019", "a"); // ??? not in the standard!!!
+ registerDatafield("020", "6", "9", "a", "b", "c", "z");
+ registerDatafield("022", "a", "c", "y", "z");
+ registerDatafield("024", "2", "9", "a", "c", "d", "z");
+ registerDatafield("025", "a");
+ registerDatafield("026", "a", "e");
+ registerDatafield("027", "a");
+ registerDatafield("028", "a", "b");
+ registerDatafield("029", "a", "b", "c"); // ??? not in the standard!
+ registerDatafield("030", "a", "z");
// 31
- registerDatafieldBranch("032", "a", "b");
- registerDatafieldBranch("033", "a", "b", "c");
- registerDatafieldBranch("034", "a", "b", "c", "d", "e", "f", "g");
- registerDatafieldBranch("035", "6", "a", "z");
- registerDatafieldBranch("036", "a");
- registerDatafieldBranch("037", "a", "b", "c", "f", "n");
- registerDatafieldBranch("038", "a");
- registerDatafieldBranch("040", "6", "a", "b", "c", "d", "e", "h", "t", "w");
- registerDatafieldBranch("041", "2", "a", "b", "d", "e", "f", "g", "h", "j", "k", "m", "n");
- registerDatafieldBranch("042", "a");
- registerDatafieldBranch("043", "2", "a", "b", "c");
- registerDatafieldBranch("044", "a", "h");
- registerDatafieldBranch("045", "a", "b");
- registerDatafieldBranch("046", "2", "a", "b", "d", "j", "k");
- registerDatafieldBranch("047", "a");
- registerDatafieldBranch("048", "a", "b");
- registerDatafieldBranch("049", "a"); // ???
- registerDatafieldBranch("050", "3", "a", "b", "i");
- registerDatafieldBranch("051", "a", "b", "c", "i");
- registerDatafieldBranch("052", "a", "b");
- registerDatafieldBranch("055", "2", "a", "b");
- registerDatafieldBranch("060", "b");
- registerDatafieldBranch("061", "a");
- registerDatafieldBranch("066", "a", "c");
- registerDatafieldBranch("070", "a", "b");
+ registerDatafield("032", "a", "b");
+ registerDatafield("033", "a", "b", "c");
+ registerDatafield("034", "a", "b", "c", "d", "e", "f", "g");
+ registerDatafield("035", "6", "a", "z");
+ registerDatafield("036", "a");
+ registerDatafield("037", "a", "b", "c", "f", "n");
+ registerDatafield("038", "a");
+ registerDatafield("040", "6", "a", "b", "c", "d", "e", "h", "t", "w");
+ registerDatafield("041", "2", "a", "b", "d", "e", "f", "g", "h", "j", "k", "m", "n");
+ registerDatafield("042", "a");
+ registerDatafield("043", "2", "a", "b", "c");
+ registerDatafield("044", "a", "h");
+ registerDatafield("045", "a", "b");
+ registerDatafield("046", "2", "a", "b", "d", "j", "k");
+ registerDatafield("047", "a");
+ registerDatafield("048", "a", "b");
+ registerDatafield("049", "a"); // ???
+ registerDatafield("050", "3", "a", "b", "i");
+ registerDatafield("051", "a", "b", "c", "i");
+ registerDatafield("052", "a", "b");
+ registerDatafield("055", "2", "a", "b");
+ registerDatafield("060", "b");
+ registerDatafield("061", "a");
+ registerDatafield("066", "a", "c");
+ registerDatafield("070", "a", "b");
// 71
- registerDatafieldBranch("072", "2", "a", "x");
- registerDatafieldBranch("074", "a", "z");
- registerDatafieldBranch("080", "2", "a", "b", "x");
- registerDatafieldBranch("082", "2", "9", "a", "b", "m", "n", "q");
- registerDatafieldBranch("083", "2", "a");
- registerDatafieldBranch("084", "a", "b");
- registerDatafieldBranch("085", "8", "a", "b", "s", "z");
- registerDatafieldBranch("086", "2", "6", "a", "z");
- registerDatafieldBranch("088", "a");
- registerDatafieldBranch("090", "a", "b", "v");
-
- registerDatafieldBranch("100", "0", "4", "6", "a", "b", "c", "d", "e", "f", "g", "h", "k", "l", "n", "p", "q", "t", "u");
- registerDatafieldBranch("110", "0", "4", "6", "9", "a", "b", "c", "e", "f", "k", "l", "n", "p", "s", "t", "u");
- registerDatafieldBranch("111", "0", "4", "6", "9", "a", "b", "c", "d", "e", "f", "g", "j", "k", "l", "n", "q", "p", "t");
- registerDatafieldBranch("130", "0", "6", "7", "9", "a", "d", "f", "g", "h", "k", "l", "m", "n", "o", "p", "r", "s", "t", "x", "v");
-
- registerDatafieldBranch("199", "9"); // ??
-
- registerDatafieldBranch("210", "a");
- registerDatafieldBranch("222", "a", "b");
- registerDatafieldBranch("240", "0", "6", "7", "9", "a", "d", "f", "g", "h", "k", "l", "m", "n", "o", "p", "r", "s", "t", "x");
- registerDatafieldBranch("241", "a"); // ??
- registerDatafieldBranch("242", "a", "b", "c", "y");
- registerDatafieldBranch("243", "a", "f", "k", "l");
- registerDatafieldBranch("245", "6", "a", "b", "c", "d", "e", "f", "g", "h", "k", "n", "p", "s", "v");
- registerDatafieldBranch("246", "5", "6", "a", "b", "d", "f", "h", "i", "n", "p");
- registerDatafieldBranch("247", "a", "b", "f", "g", "p");
- registerDatafieldBranch("249", "a", "b", "c", "v"); // ????
- registerDatafieldBranch("250", "6", "9", "a", "c");
- registerDatafieldBranch("254", "a");
- registerDatafieldBranch("255", "a", "b", "c", "e");
+ registerDatafield("072", "2", "a", "x");
+ registerDatafield("074", "a", "z");
+ registerDatafield("080", "2", "a", "b", "x");
+ registerDatafield("082", "2", "9", "a", "b", "m", "n", "q");
+ registerDatafield("083", "2", "a");
+ registerDatafield("084", "a", "b");
+ registerDatafield("085", "8", "a", "b", "s", "z");
+ registerDatafield("086", "2", "6", "a", "z");
+ registerDatafield("088", "a");
+ registerDatafield("090", "a", "b", "v");
+
+ registerDatafield("100", "0", "4", "6", "a", "b", "c", "d", "e", "f", "g", "h", "k", "l", "n", "p", "q", "t", "u");
+ registerDatafield("110", "0", "4", "6", "9", "a", "b", "c", "e", "f", "k", "l", "n", "p", "s", "t", "u");
+ registerDatafield("111", "0", "4", "6", "9", "a", "b", "c", "d", "e", "f", "g", "j", "k", "l", "n", "q", "p", "t");
+ registerDatafield("130", "0", "6", "7", "9", "a", "d", "f", "g", "h", "k", "l", "m", "n", "o", "p", "r", "s", "t", "x", "v");
+
+ registerDatafield("199", "9"); // ??
+
+ registerDatafield("210", "a");
+ registerDatafield("222", "a", "b");
+ registerDatafield("240", "0", "6", "7", "9", "a", "d", "f", "g", "h", "k", "l", "m", "n", "o", "p", "r", "s", "t", "x");
+ registerDatafield("241", "a"); // ??
+ registerDatafield("242", "a", "b", "c", "y");
+ registerDatafield("243", "a", "f", "k", "l");
+ registerDatafield("245", "6", "a", "b", "c", "d", "e", "f", "g", "h", "k", "n", "p", "s", "v");
+ registerDatafield("246", "5", "6", "a", "b", "d", "f", "h", "i", "n", "p");
+ registerDatafield("247", "a", "b", "f", "g", "p");
+ registerDatafield("249", "a", "b", "c", "v"); // ????
+ registerDatafield("250", "6", "9", "a", "c");
+ registerDatafield("254", "a");
+ registerDatafield("255", "a", "b", "c", "e");
// 256
- registerDatafieldBranch("257", "a");
- registerDatafieldBranch("258", "a");
- registerDatafieldBranch("260", "3", "6", "a", "b", "c", "d", "e", "f", "g", "z");
+ registerDatafield("257", "a");
+ registerDatafield("258", "a");
+ registerDatafield("260", "3", "6", "a", "b", "c", "d", "e", "f", "g", "z");
// 263
- registerDatafieldBranch("264", "3", "a", "b", "c");
- registerDatafieldBranch("265", "a"); // ????
- registerDatafieldBranch("270", "a", "b", "c", "d", "e", "g", "h", "k", "l", "m", "n");
- registerDatafieldBranch("290", "a", "b"); // ????
-
- registerDatafieldBranch("300", "2", "3", "6", "a", "b", "c", "e", "f", "g", "x"); // " " <- ?????
- registerDatafieldBranch("306", "a");
- registerDatafieldBranch("307", "a");
- registerDatafieldBranch("310", "a", "b");
+ registerDatafield("264", "3", "a", "b", "c");
+ registerDatafield("265", "a"); // ????
+ registerDatafield("270", "a", "b", "c", "d", "e", "g", "h", "k", "l", "m", "n");
+ registerDatafield("290", "a", "b"); // ????
+
+ registerDatafield("300", "2", "3", "6", "a", "b", "c", "e", "f", "g", "x"); // " " <- ?????
+ registerDatafield("306", "a");
+ registerDatafield("307", "a");
+ registerDatafield("310", "a", "b");
// 321
- registerDatafieldBranch("336", "2", "3", "8", "a", "b");
- registerDatafieldBranch("337", "2", "3", "8", "a", "b");
- registerDatafieldBranch("338", "2", "3", "8", "a", "b");
- registerDatafieldBranch("340", "a");
+ registerDatafield("336", "2", "3", "8", "a", "b");
+ registerDatafield("337", "2", "3", "8", "a", "b");
+ registerDatafield("338", "2", "3", "8", "a", "b");
+ registerDatafield("340", "a");
// 342
// 343
- registerDatafieldBranch("344", "2", "a", "b", "g", "h");
+ registerDatafield("344", "2", "a", "b", "g", "h");
// 345
- registerDatafieldBranch("346", "2", "b");
- registerDatafieldBranch("347", "2", "3", "a", "b", "c", "d");
+ registerDatafield("346", "2", "b");
+ registerDatafield("347", "2", "3", "a", "b", "c", "d");
// 348
- registerDatafieldBranch("350", "a"); // ???
- registerDatafieldBranch("351", "3", "a", "b");
+ registerDatafield("350", "a"); // ???
+ registerDatafield("351", "3", "a", "b");
// 352
// 355
// 357
- registerDatafieldBranch("362", "a", "z");
- registerDatafieldBranch("363", "a", "b", "i", "j", "k", "u");
- registerDatafieldBranch("365", "2", "a");
- registerDatafieldBranch("366", "2", "a", "b", "c", "j", "k", "m");
+ registerDatafield("362", "a", "z");
+ registerDatafield("363", "a", "b", "i", "j", "k", "u");
+ registerDatafield("365", "2", "a");
+ registerDatafield("366", "2", "a", "b", "c", "j", "k", "m");
// 370
- registerDatafieldBranch("377", "2", "a");
- registerDatafieldBranch("380", "0", "2", "a");
+ registerDatafield("377", "2", "a");
+ registerDatafield("380", "0", "2", "a");
// 381
- registerDatafieldBranch("382", "0", "2", "a", "d", "g", "n", "p", "s", "v");
- registerDatafieldBranch("383", "a", "b", "c");
- registerDatafieldBranch("384", "a", "b");
- registerDatafieldBranch("385", "0", "a", "g");
+ registerDatafield("382", "0", "2", "a", "d", "g", "n", "p", "s", "v");
+ registerDatafield("383", "a", "b", "c");
+ registerDatafield("384", "a", "b");
+ registerDatafield("385", "0", "a", "g");
// 386
// 388
- registerDatafieldBranch("400", "6", "a", "b", "c", "d", "e", "f", "l", "n", "p", "q", "t", "v", "x"); // ???
- registerDatafieldBranch("410", "6", "a", "b", "c", "d", "f", "g", "k", "n", "p", "t", "u", "x", "v"); // ???
- registerDatafieldBranch("411", "a", "c", "d", "e", "g", "n", "p", "q", "t", "v"); // ???
- registerDatafieldBranch("440", "a", "n", "p", "v", "x"); // ???
- registerDatafieldBranch("489", "a", "v"); // ???
- registerDatafieldBranch("490", "2", "3", "6", "a", "l", "n", "p", "x", "v");
-
- registerDatafieldBranch("500", "2", "3", "5", "6", "a", "g", "x");
- registerDatafieldBranch("501", "5", "6", "a");
- registerDatafieldBranch("502", "6", "a", "b", "c", "d", "6");
- registerDatafieldBranch("504", "6", "b");
- registerDatafieldBranch("505", "a", "g", "r", "t", "u");
- registerDatafieldBranch("506", "3", "5", "a", "c", "u");
- registerDatafieldBranch("507", "a");
- registerDatafieldBranch("508", "6", "a");
- registerDatafieldBranch("510", "3", "6", "b", "x");
- registerDatafieldBranch("511", "a");
- registerDatafieldBranch("513", "a", "b");
- registerDatafieldBranch("514", "a");
- registerDatafieldBranch("515", "a");
- registerDatafieldBranch("516", "a");
+ registerDatafield("400", "6", "a", "b", "c", "d", "e", "f", "l", "n", "p", "q", "t", "v", "x"); // ???
+ registerDatafield("410", "6", "a", "b", "c", "d", "f", "g", "k", "n", "p", "t", "u", "x", "v"); // ???
+ registerDatafield("411", "a", "c", "d", "e", "g", "n", "p", "q", "t", "v"); // ???
+ registerDatafield("440", "a", "n", "p", "v", "x"); // ???
+ registerDatafield("489", "a", "v"); // ???
+ registerDatafield("490", "2", "3", "6", "a", "l", "n", "p", "x", "v");
+
+ registerDatafield("500", "2", "3", "5", "6", "a", "g", "x");
+ registerDatafield("501", "5", "6", "a");
+ registerDatafield("502", "6", "a", "b", "c", "d", "6");
+ registerDatafield("504", "6", "b");
+ registerDatafield("505", "a", "g", "r", "t", "u");
+ registerDatafield("506", "3", "5", "a", "c", "u");
+ registerDatafield("507", "a");
+ registerDatafield("508", "6", "a");
+ registerDatafield("510", "3", "6", "b", "x");
+ registerDatafield("511", "a");
+ registerDatafield("513", "a", "b");
+ registerDatafield("514", "a");
+ registerDatafield("515", "a");
+ registerDatafield("516", "a");
// 517
- registerDatafieldBranch("518", "a");
- registerDatafieldBranch("520", "2", "3", "6", "a", "b", "c", "u");
- registerDatafieldBranch("521", "6", "a", "b");
- registerDatafieldBranch("522", "a");
- registerDatafieldBranch("524", "a");
- registerDatafieldBranch("525", "6", "a");
- registerDatafieldBranch("526", "a", "b", "c", "d", "z");
- registerDatafieldBranch("530", "3", "6", "a", "b", "c", "d", "u");
- registerDatafieldBranch("533", "3", "5", "6", "7", "a", "b", "c", "d", "e", "f", "m", "n", "x");
- registerDatafieldBranch("534", "6", "c", "e", "f", "k", "l", "p", "t", "z");
- registerDatafieldBranch("535", "3", "a", "b", "c", "g", "q");
- registerDatafieldBranch("536", "6", "a", "b", "c", "d", "e", "f", "g", "h");
- registerDatafieldBranch("538", "6", "a", "u");
- registerDatafieldBranch("540", "3", "5", "a", "b", "c", "u");
- registerDatafieldBranch("541", "3", "5", "a", "b", "c", "d", "e", "f", "h", "n", "o");
- registerDatafieldBranch("542", "a", "c", "d", "f", "g");
- registerDatafieldBranch("544", "3", "a", "b", "d", "e", "n");
- registerDatafieldBranch("545", "a", "b");
- registerDatafieldBranch("546", "3", "6", "a", "b");
+ registerDatafield("518", "a");
+ registerDatafield("520", "2", "3", "6", "a", "b", "c", "u");
+ registerDatafield("521", "6", "a", "b");
+ registerDatafield("522", "a");
+ registerDatafield("524", "a");
+ registerDatafield("525", "6", "a");
+ registerDatafield("526", "a", "b", "c", "d", "z");
+ registerDatafield("530", "3", "6", "a", "b", "c", "d", "u");
+ registerDatafield("533", "3", "5", "6", "7", "a", "b", "c", "d", "e", "f", "m", "n", "x");
+ registerDatafield("534", "6", "c", "e", "f", "k", "l", "p", "t", "z");
+ registerDatafield("535", "3", "a", "b", "c", "g", "q");
+ registerDatafield("536", "6", "a", "b", "c", "d", "e", "f", "g", "h");
+ registerDatafield("538", "6", "a", "u");
+ registerDatafield("540", "3", "5", "a", "b", "c", "u");
+ registerDatafield("541", "3", "5", "a", "b", "c", "d", "e", "f", "h", "n", "o");
+ registerDatafield("542", "a", "c", "d", "f", "g");
+ registerDatafield("544", "3", "a", "b", "d", "e", "n");
+ registerDatafield("545", "a", "b");
+ registerDatafield("546", "3", "6", "a", "b");
// 547
- registerDatafieldBranch("550", "a");
- registerDatafieldBranch("552", "a");
- registerDatafieldBranch("555", "a", "c", "u");
- registerDatafieldBranch("556", "a");
- registerDatafieldBranch("561", "3", "5", "6", "a");
- registerDatafieldBranch("562", "5", "a", "b", "c");
- registerDatafieldBranch("563", "5", "a");
- registerDatafieldBranch("565", "a");
+ registerDatafield("550", "a");
+ registerDatafield("552", "a");
+ registerDatafield("555", "a", "c", "u");
+ registerDatafield("556", "a");
+ registerDatafield("561", "3", "5", "6", "a");
+ registerDatafield("562", "5", "a", "b", "c");
+ registerDatafield("563", "5", "a");
+ registerDatafield("565", "a");
// 567
- registerDatafieldBranch("580", "a");
- registerDatafieldBranch("581", "3", "8", "a");
- registerDatafieldBranch("583", "3", "5", "a", "b", "c", "d", "e", "f", "h", "i", "j", "l", "u", "x");
- registerDatafieldBranch("584", "a");
- registerDatafieldBranch("585", "3", "5", "6", "a");
- registerDatafieldBranch("586", "a");
- registerDatafieldBranch("588", "5", "a");
- registerDatafieldBranch("589", "c", "d"); // ???
- registerDatafieldBranch("590", "a");
- registerDatafieldBranch("591", "2", "a", "x");
- registerDatafieldBranch("593", "a");
-
- registerDatafieldBranch("600", "0", "1", "2", "4", "6", "9", "a", "b", "c", "d", "f", "h", "m", "n", "o", "p", "r", "s", "t", "x", "v");
- registerDatafieldBranch("610", "0", "2", "3", "6", "9", "a", "b", "f", "g", "h", "n", "o", "t", "u", "x", "v");
- registerDatafieldBranch("611", "0", "2", "3", "6", "9", "a", "b", "c", "d", "f", "g", "k", "l", "n", "p", "t");
- registerDatafieldBranch("630", "0", "2", "3", "6", "9", "a", "f", "n", "o", "p", "t", "x");
+ registerDatafield("580", "a");
+ registerDatafield("581", "3", "8", "a");
+ registerDatafield("583", "3", "5", "a", "b", "c", "d", "e", "f", "h", "i", "j", "l", "u", "x");
+ registerDatafield("584", "a");
+ registerDatafield("585", "3", "5", "6", "a");
+ registerDatafield("586", "a");
+ registerDatafield("588", "5", "a");
+ registerDatafield("589", "c", "d"); // ???
+ registerDatafield("590", "a");
+ registerDatafield("591", "2", "a", "x");
+ registerDatafield("593", "a");
+
+ registerDatafield("600", "0", "1", "2", "4", "6", "9", "a", "b", "c", "d", "f", "h", "m", "n", "o", "p", "r", "s", "t", "x", "v");
+ registerDatafield("610", "0", "2", "3", "6", "9", "a", "b", "f", "g", "h", "n", "o", "t", "u", "x", "v");
+ registerDatafield("611", "0", "2", "3", "6", "9", "a", "b", "c", "d", "f", "g", "k", "l", "n", "p", "t");
+ registerDatafield("630", "0", "2", "3", "6", "9", "a", "f", "n", "o", "p", "t", "x");
// 647
- registerDatafieldBranch("648", "2", "a", "x", "v");
- registerDatafieldBranch("650", "0", "2", "3", "6", "9", "a", "e", "k", "q", "x", "y", "z");
- registerDatafieldBranch("651", "0", "2", "3", "4", "6", "9", "a", "e", "k", "n", "t", "x", "v", "z");
- registerDatafieldBranch("653", "6", "a");
- registerDatafieldBranch("654", "2", "a", "b", "c");
- registerDatafieldBranch("655", "0", "2", "3", "a", "b", "g", "x", "y", "z");
- registerDatafieldBranch("656", "2", "a", "v", "x", "z");
- registerDatafieldBranch("657", "2", "a", "y");
+ registerDatafield("648", "2", "a", "x", "v");
+ registerDatafield("650", "0", "2", "3", "6", "9", "a", "e", "k", "q", "x", "y", "z");
+ registerDatafield("651", "0", "2", "3", "4", "6", "9", "a", "e", "k", "n", "t", "x", "v", "z");
+ registerDatafield("653", "6", "a");
+ registerDatafield("654", "2", "a", "b", "c");
+ registerDatafield("655", "0", "2", "3", "a", "b", "g", "x", "y", "z");
+ registerDatafield("656", "2", "a", "v", "x", "z");
+ registerDatafield("657", "2", "a", "y");
// 658
- registerDatafieldBranch("662", "2", "a", "d");
- registerDatafieldBranch("689", "0", "2", "5", "9", "A", "a", "b", "c", "D", "d", "f", "g", "m", "n", "p", "r", "s", "t", "x", "z"); // ????
+ registerDatafield("662", "2", "a", "d");
+ registerDatafield("689", "0", "2", "5", "9", "A", "a", "b", "c", "D", "d", "f", "g", "m", "n", "p", "r", "s", "t", "x", "z"); // ????
// 69X
// 70X-75X: Added Entry Fields
- registerDatafieldBranch("700", "0", "3", "4", "5", "6", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "T", "u", "U", "x");
- registerDatafieldBranch("710", "0", "3", "4", "5", "6", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "x", "v");
- registerDatafieldBranch("711", "0", "4", "6", "9", "a", "b", "c", "d", "e", "f", "g", "i", "j", "k", "l", "n", "p", "q", "s", "t");
- registerDatafieldBranch("720", "4", "6", "a", "e");
- registerDatafieldBranch("730", "0", "5", "6", "a", "d", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "T", "U", "x");
- registerDatafieldBranch("740", "5", "6", "a", "h", "n", "p", "v");
- registerDatafieldBranch("751", "4", "6", "a");
- registerDatafieldBranch("752", "a", "b", "c", "d", "f");
- registerDatafieldBranch("753", "a", "c");
+ registerDatafield("700", "0", "3", "4", "5", "6", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "T", "u", "U", "x");
+ registerDatafield("710", "0", "3", "4", "5", "6", "9", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "x", "v");
+ registerDatafield("711", "0", "4", "6", "9", "a", "b", "c", "d", "e", "f", "g", "i", "j", "k", "l", "n", "p", "q", "s", "t");
+ registerDatafield("720", "4", "6", "a", "e");
+ registerDatafield("730", "0", "5", "6", "a", "d", "f", "g", "h", "i", "k", "l", "m", "n", "o", "p", "r", "s", "t", "T", "U", "x");
+ registerDatafield("740", "5", "6", "a", "h", "n", "p", "v");
+ registerDatafield("751", "4", "6", "a");
+ registerDatafield("752", "a", "b", "c", "d", "f");
+ registerDatafield("753", "a", "c");
// 754
// 76X-78X: Linking Entry Fields
- registerDatafieldBranch("760", "a", "d", "g", "t", "x", "y", "w");
+ registerDatafield("760", "a", "d", "g", "t", "x", "y", "w");
// 762
- registerDatafieldBranch("765", "6", "a", "b", "c", "d", "h", "i", "k", "o", "t", "w", "x", "z");
- registerDatafieldBranch("767", "a", "d", "i", "s", "t", "w", "z");
- registerDatafieldBranch("770", "6", "a", "b", "c", "d", "h", "i", "k", "n", "o", "s", "t", "w", "x", "z");
- registerDatafieldBranch("772", "7", "a", "b", "c", "g", "h", "i", "k", "n", "s", "t", "w", "x", "z");
- registerDatafieldBranch("773", "3", "6", "7", "a", "b", "d", "g", "h", "i", "n", "o", "q", "s", "t", "x", "w");
- registerDatafieldBranch("774", "a", "b", "c", "d", "g", "i", "s", "t", "w", "z");
- registerDatafieldBranch("775", "0", "6", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "n", "o", "s", "t", "u", "w", "z");
- registerDatafieldBranch("776", "0", "4", "6", "9", "a", "b", "c", "d", "g", "h", "i", "k", "m", "n", "o", "q", "s", "t", "u", "x", "w", "z");
- registerDatafieldBranch("777", "6", "7", "a", "c", "h", "t", "w");
- registerDatafieldBranch("780", "0", "6", "a", "b", "c", "d", "g", "i", "k", "n", "s", "t", "x", "w", "z");
- registerDatafieldBranch("785", "0", "6", "a", "b", "c", "d", "i", "n", "x", "t", "x", "w", "z");
+ registerDatafield("765", "6", "a", "b", "c", "d", "h", "i", "k", "o", "t", "w", "x", "z");
+ registerDatafield("767", "a", "d", "i", "s", "t", "w", "z");
+ registerDatafield("770", "6", "a", "b", "c", "d", "h", "i", "k", "n", "o", "s", "t", "w", "x", "z");
+ registerDatafield("772", "7", "a", "b", "c", "g", "h", "i", "k", "n", "s", "t", "w", "x", "z");
+ registerDatafield("773", "3", "6", "7", "a", "b", "d", "g", "h", "i", "n", "o", "q", "s", "t", "x", "w");
+ registerDatafield("774", "a", "b", "c", "d", "g", "i", "s", "t", "w", "z");
+ registerDatafield("775", "0", "6", "a", "b", "c", "d", "e", "f", "g", "h", "i", "k", "n", "o", "s", "t", "u", "w", "z");
+ registerDatafield("776", "0", "4", "6", "9", "a", "b", "c", "d", "g", "h", "i", "k", "m", "n", "o", "q", "s", "t", "u", "x", "w", "z");
+ registerDatafield("777", "6", "7", "a", "c", "h", "t", "w");
+ registerDatafield("780", "0", "6", "a", "b", "c", "d", "g", "i", "k", "n", "s", "t", "x", "w", "z");
+ registerDatafield("785", "0", "6", "a", "b", "c", "d", "i", "n", "x", "t", "x", "w", "z");
// 786
- registerDatafieldBranch("787", "0", "6", "7", "a", "b", "d", "g", "h", "i", "n", "o", "r", "s", "t", "w");
+ registerDatafield("787", "0", "6", "7", "a", "b", "d", "g", "h", "i", "n", "o", "r", "s", "t", "w");
// 80X-83X: Series Added Entry Fields
- registerDatafieldBranch("800", "2", "4", "6", "a", "b", "c", "d", "e", "f", "g", "k", "l", "p", "q", "s", "t", "v", "w");
- registerDatafieldBranch("810", "4", "6", "a", "b", "c", "d", "f", "g", "k", "l", "p", "q", "r", "s", "t", "v", "w", "x");
- registerDatafieldBranch("811", "6", "a", "b", "c", "d", "e", "f", "g", "k", "l", "n", "p", "q", "t", "v", "w");
- registerDatafieldBranch("830", "3", "6", "a", "d", "f", "g", "h", "k", "l", "m", "o", "p", "q", "s", "t", "x", "v", "w");
+ registerDatafield("800", "2", "4", "6", "a", "b", "c", "d", "e", "f", "g", "k", "l", "p", "q", "s", "t", "v", "w");
+ registerDatafield("810", "4", "6", "a", "b", "c", "d", "f", "g", "k", "l", "p", "q", "r", "s", "t", "v", "w", "x");
+ registerDatafield("811", "6", "a", "b", "c", "d", "e", "f", "g", "k", "l", "n", "p", "q", "t", "v", "w");
+ registerDatafield("830", "3", "6", "a", "d", "f", "g", "h", "k", "l", "m", "o", "p", "q", "s", "t", "x", "v", "w");
- registerDatafieldBranch("840", "a", "v"); // ??
+ registerDatafield("840", "a", "v"); // ??
// 841-88X: Holdings, Location, Alternate Graphics, etc. Fields
// 841
@@ -286,43 +286,43 @@ public class MarcJsonSchema implements Schema, ProblemCatalogSchema, Serializabl
// 843
// 844
// 845
- registerDatafieldBranch("850", "a");
- registerDatafieldBranch("852", "2", "3", "a", "b", "c", "e", "h", "i", "j", "k", "m", "n", "p", "t", "u", "x", "w", "z");
+ registerDatafield("850", "a");
+ registerDatafield("852", "2", "3", "a", "b", "c", "e", "h", "i", "j", "k", "m", "n", "p", "t", "u", "x", "w", "z");
// 853
// 854
// 855
- registerDatafieldBranch("856", "2", "3", "a", "b", "c", "d", "f", "h", "i", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "u", "x", "y", "v", "w", "z");
+ registerDatafield("856", "2", "3", "a", "b", "c", "d", "f", "h", "i", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "u", "x", "y", "v", "w", "z");
// 863
// 864
- registerDatafieldBranch("865", "a");
- registerDatafieldBranch("866", "a");
+ registerDatafield("865", "a");
+ registerDatafield("866", "a");
// 867
// 868
// 876
// 877
// 878
- registerDatafieldBranch("880", "0", "1", "2", "3", "5", "6", "8", "a", "b", "c", "d", "f", "g", "i", "k", "l", "o", "q", "r", "s", "t", "T", "U", "x", "y", "v", "z");
+ registerDatafield("880", "0", "1", "2", "3", "5", "6", "8", "a", "b", "c", "d", "f", "g", "i", "k", "l", "o", "q", "r", "s", "t", "T", "U", "x", "y", "v", "z");
// 882
// 883
// 884
// 885
- registerDatafieldBranch("886", "2", "a", "b", "c", "d", "e", "f", "h", "k", "x", "z");
- registerDatafieldBranch("887", "2", "a");
- registerDatafieldBranch("889", "w"); // ???
-
- registerDatafieldBranch("911", "a", "b", "9"); // OCLC
- registerDatafieldBranch("912", "a", "b", "9"); // OCLC
- registerDatafieldBranch("924", "9", "a", "b", "c", "d", "e", "g", "h", "i", "j", "k", "l", "m", "n", "q", "r", "s", "v", "w", "x", "y", "z");
- registerDatafieldBranch("935", "a", "b", "c", "d", "e", "m");
- registerDatafieldBranch("936", "0", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "q", "y");
- registerDatafieldBranch("937", "a", "b", "c", "d", "e", "f");
- registerDatafieldBranch("938", "a", "b", "n");
- registerDatafieldBranch("987", "a", "b", "c", "d", "e", "f"); // ???
- registerDatafieldBranch("994", "a", "b");
+ registerDatafield("886", "2", "a", "b", "c", "d", "e", "f", "h", "k", "x", "z");
+ registerDatafield("887", "2", "a");
+ registerDatafield("889", "w"); // ???
+
+ registerDatafield("911", "a", "b", "9"); // OCLC
+ registerDatafield("912", "a", "b", "9"); // OCLC
+ registerDatafield("924", "9", "a", "b", "c", "d", "e", "g", "h", "i", "j", "k", "l", "m", "n", "q", "r", "s", "v", "w", "x", "y", "z");
+ registerDatafield("935", "a", "b", "c", "d", "e", "m");
+ registerDatafield("936", "0", "a", "b", "c", "d", "e", "f", "g", "h", "j", "k", "m", "q", "y");
+ registerDatafield("937", "a", "b", "c", "d", "e", "f");
+ registerDatafield("938", "a", "b", "n");
+ registerDatafield("987", "a", "b", "c", "d", "e", "f"); // ???
+ registerDatafield("994", "a", "b");
extractableFields.put("leader", "$.leader");
extractableFields.put("recordId", "$.controlfield[?(@.tag == '001')].content");
- extractableFields.put("001", PATHS.get("001").getJsonPath());
+ extractableFields.put("001", PATHS.get("001").getPath());
extractableFields.put("007", "$.controlfield[?(@.tag == '007')].content");
extractableFields.put("008", "$.controlfield[?(@.tag == '008')].content");
extractableFields.put("020$a", createDatafieldPath("020", "a"));
@@ -355,26 +355,21 @@ public class MarcJsonSchema implements Schema, ProblemCatalogSchema, Serializabl
extractableFields.put("911$9", createDatafieldPath("911", "9"));
extractableFields.put("912$9", createDatafieldPath("911", "9"));
-
-
- /*
- */
-
}
- private static void registerDatafieldBranch(String tag, String... codes) {
- var parent = new JsonBranch(tag, createDatafieldParentPath(tag));
+ private static void registerDatafield(String tag, String... codes) {
+ var parent = new DataElement(tag, createDatafieldParentPath(tag));
parent.setCollection(true);
addPath(parent);
- addPath(new JsonBranch(tag + "$ind1", parent, DATAFIELD_IND1_PATTERN));
- addPath(new JsonBranch(tag + "$ind2", parent, DATAFIELD_IND2_PATTERN));
+ addPath(new DataElement(tag + "$ind1", parent, DATAFIELD_IND1_PATTERN));
+ addPath(new DataElement(tag + "$ind2", parent, DATAFIELD_IND2_PATTERN));
for (String code : codes) {
- addPath(new JsonBranch(tag + "$" + code, parent, createDatafieldChildrenPath(code)));
+ addPath(new DataElement(tag + "$" + code, parent, createDatafieldChildrenPath(code)));
}
}
- private static JsonBranch createDatafieldBranch(String tag, String code) {
- return new JsonBranch(tag + "$" + code, createDatafieldPath(tag, code));
+ private static DataElement createDatafieldBranch(String tag, String code) {
+ return new DataElement(tag + "$" + code, createDatafieldPath(tag, code));
}
public static String createDatafieldPath(String tag, String code) {
@@ -395,17 +390,17 @@ public Format getFormat() {
}
@Override
- public List getCollectionPaths() {
+ public List getCollectionPaths() {
return new ArrayList(COLLECTION_PATHS.values());
}
@Override
- public List getRootChildrenPaths() {
+ public List getRootChildrenPaths() {
return new ArrayList(DIRECT_CHILDREN.values());
}
@Override
- public List getPaths() {
+ public List getPaths() {
return new ArrayList(PATHS.values());
}
@@ -420,7 +415,7 @@ public List getNoLanguageFields() {
}
@Override
- public List getIndexFields() {
+ public List getIndexFields() {
throw new UnsupportedOperationException(NOT_SUPPORTED_YET);
}
@@ -435,18 +430,18 @@ public void setExtractableFields(Map extractableFields) {
}
@Override
- public void addExtractableField(String label, String jsonPath) {
- extractableFields.put(label, jsonPath);
+ public void addExtractableField(String label, String path) {
+ extractableFields.put(label, path);
}
- private static void addPath(JsonBranch branch) {
- PATHS.put(branch.getLabel(), branch);
+ private static void addPath(DataElement dataElement) {
+ PATHS.put(dataElement.getLabel(), dataElement);
- if (branch.getParent() == null)
- DIRECT_CHILDREN.put(branch.getLabel(), branch);
+ if (dataElement.getParent() == null)
+ DIRECT_CHILDREN.put(dataElement.getLabel(), dataElement);
- if (branch.isCollection())
- COLLECTION_PATHS.put(branch.getLabel(), branch);
+ if (dataElement.isCollection())
+ COLLECTION_PATHS.put(dataElement.getLabel(), dataElement);
}
@Override
@@ -470,12 +465,12 @@ public String getDescriptionPath() {
}
@Override
- public JsonBranch getPathByLabel(String label) {
+ public DataElement getPathByLabel(String label) {
return PATHS.get(label);
}
@Override
- public JsonBranch getRecordId() {
+ public DataElement getRecordId() {
return PATHS.get("001");
}
diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/Schema.java b/src/main/java/de/gwdg/metadataqa/api/schema/Schema.java
index 960e9df8..7dd73460 100644
--- a/src/main/java/de/gwdg/metadataqa/api/schema/Schema.java
+++ b/src/main/java/de/gwdg/metadataqa/api/schema/Schema.java
@@ -2,7 +2,7 @@
import de.gwdg.metadataqa.api.configuration.schema.Rule;
import de.gwdg.metadataqa.api.json.FieldGroup;
-import de.gwdg.metadataqa.api.json.JsonBranch;
+import de.gwdg.metadataqa.api.json.DataElement;
import de.gwdg.metadataqa.api.rule.RuleChecker;
import java.io.Serializable;
@@ -25,33 +25,33 @@ public interface Schema extends Serializable {
* Return collection paths.
* @return List of collection paths
*/
- List getCollectionPaths();
+ List getCollectionPaths();
/**
* Return the paths of root's direct children.
* @return Paths.
*/
- List getRootChildrenPaths();
+ List getRootChildrenPaths();
/**
* The list of fields to investigate in most of the measurements.
* @return
* List of field representations
*/
- List getPaths();
+ List getPaths();
/**
* Returns a path by its label.
* @param label The label to look for.
* @return The branch.
*/
- JsonBranch getPathByLabel(String label);
+ DataElement getPathByLabel(String label);
/**
* Returns a path of the record id.
* @return The branch.
*/
- JsonBranch getRecordId();
+ DataElement getRecordId();
/**
* Field groups used in completeness sub-dimensions.
@@ -78,7 +78,7 @@ public interface Schema extends Serializable {
* @return
* The map of fields
*/
- List