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 getIndexFields(); + List getIndexFields(); /** * Get fields for which the values should be extracted from the records. @@ -97,9 +97,9 @@ public interface Schema extends Serializable { /** * Add a single field to the map of extractable fields. * @param label The label of the field. - * @param jsonPath JSON path expression. + * @param path A path expression (XPath, JSONPath). */ - void addExtractableField(String label, String jsonPath); + void addExtractableField(String label, String path); List getCategories(); @@ -110,7 +110,7 @@ default Map getNamespaces() { } default void checkConsistency() { - for (JsonBranch path : getPaths()) { + for (DataElement path : getPaths()) { List rules = path.getRules(); if (rules != null && !rules.isEmpty()) { for (Rule rule : rules) { diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/SchemaUtils.java b/src/main/java/de/gwdg/metadataqa/api/schema/SchemaUtils.java index ec359e75..b4f13557 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/SchemaUtils.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/SchemaUtils.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema; import de.gwdg.metadataqa.api.configuration.schema.Rule; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.rule.logical.AndChecker; import de.gwdg.metadataqa.api.rule.logical.LogicalChecker; import de.gwdg.metadataqa.api.rule.logical.NotChecker; @@ -50,7 +50,7 @@ public static List getRuleCheckers(Schema schema) { setSchemaForFields(schema); id = 0; List allRuleCheckers = new ArrayList<>(); - for (JsonBranch branch : schema.getPaths()) { + for (DataElement branch : schema.getPaths()) { if (branch.getRules() != null) { List rules = branch.getRules(); for (Rule rule : rules) { @@ -63,7 +63,7 @@ public static List getRuleCheckers(Schema schema) { return allRuleCheckers; } - private static List processRule(Schema schema, JsonBranch branch, Rule rule) { + private static List processRule(Schema schema, DataElement branch, Rule rule) { List ruleCheckers = new ArrayList<>(); if (rule.getSkip().equals(Boolean.TRUE)) return ruleCheckers; @@ -170,7 +170,7 @@ private static List processRule(Schema schema, JsonBranch branch, R return ruleCheckers; } - private static List getChildRuleCheckers(Schema schema, JsonBranch branch, List rules, String id) { + private static List getChildRuleCheckers(Schema schema, DataElement branch, List rules, String id) { List childRuleCheckers = new ArrayList<>(); for (Rule childRule : rules) { if (StringUtils.isBlank(childRule.getId())) @@ -184,10 +184,10 @@ private static List getChildRuleCheckers(Schema schema, JsonBranch private static void pair(Schema schema, List ruleCheckers, - JsonBranch branch, + DataElement branch, String fieldReference, String type) { - JsonBranch field2 = schema.getPathByLabel(fieldReference); + DataElement field2 = schema.getPathByLabel(fieldReference); if (field2 != null) { RuleChecker ruleChecker = null; if ("equals".equals(type)) { @@ -208,7 +208,7 @@ private static void pair(Schema schema, } public static void setSchemaForFields(Schema schema) { - for (JsonBranch branch : schema.getPaths()) + for (DataElement branch : schema.getPaths()) branch.setSchema(schema); } } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanLimitedSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanLimitedSchema.java index 2cf77e51..7ad3b4c8 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanLimitedSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanLimitedSchema.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; 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.schema.Format; @@ -37,109 +37,109 @@ private void initialize() { titlePath = "$.['proxies'][?(@['europeanaProxy'] == false)]['dcTitle']"; descriptionPath = "$.['proxies'][?(@['europeanaProxy'] == false)]['dcDescription']"; - addPath(new JsonBranch("edm:ProvidedCHO/@about", + addPath(new DataElement("edm:ProvidedCHO/@about", "$.['providedCHOs'][0]['about']") .setCategories(MANDATORY)); - addPath(new JsonBranch("Proxy/dc:title", titlePath) + addPath(new DataElement("Proxy/dc:title", titlePath) .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_title_txt")); - addPath(new JsonBranch("Proxy/dcterms:alternative", + addPath(new DataElement("Proxy/dcterms:alternative", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsAlternative']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dcterms_alternative_txt")); - addPath(new JsonBranch("Proxy/dc:description", descriptionPath) + addPath(new DataElement("Proxy/dc:description", descriptionPath) .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_description_txt")); - addPath(new JsonBranch("Proxy/dc:creator", + addPath(new DataElement("Proxy/dc:creator", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcCreator']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:publisher", + addPath(new DataElement("Proxy/dc:publisher", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcPublisher']") .setCategories(SEARCHABILITY, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:contributor", + addPath(new DataElement("Proxy/dc:contributor", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcContributor']") .setCategories(SEARCHABILITY)); - addPath(new JsonBranch("Proxy/dc:type", + addPath(new DataElement("Proxy/dc:type", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcType']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:identifier", + addPath(new DataElement("Proxy/dc:identifier", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcIdentifier']") .setCategories(IDENTIFICATION)); - addPath(new JsonBranch("Proxy/dc:language", + addPath(new DataElement("Proxy/dc:language", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcLanguage']") .setCategories(DESCRIPTIVENESS, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:coverage", + addPath(new DataElement("Proxy/dc:coverage", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcCoverage']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:temporal", + addPath(new DataElement("Proxy/dcterms:temporal", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsTemporal']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:spatial", + addPath(new DataElement("Proxy/dcterms:spatial", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsSpatial']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:subject", longSubjectPath) + addPath(new DataElement("Proxy/dc:subject", longSubjectPath) .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:date", + addPath(new DataElement("Proxy/dc:date", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcDate']") .setCategories(IDENTIFICATION, BROWSING, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:created", + addPath(new DataElement("Proxy/dcterms:created", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsCreated']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:issued", + addPath(new DataElement("Proxy/dcterms:issued", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsIssued']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:extent", + addPath(new DataElement("Proxy/dcterms:extent", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsExtent']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:medium", + addPath(new DataElement("Proxy/dcterms:medium", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsMedium']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:provenance", + addPath(new DataElement("Proxy/dcterms:provenance", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsProvenance']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dcterms:hasPart", + addPath(new DataElement("Proxy/dcterms:hasPart", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsHasPart']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:isPartOf", + addPath(new DataElement("Proxy/dcterms:isPartOf", "$.['proxies'][?(@['europeanaProxy'] == false)]['dctermsIsPartOf']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:format", + addPath(new DataElement("Proxy/dc:format", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcFormat']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:source", + addPath(new DataElement("Proxy/dc:source", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcSource']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dc:rights", + addPath(new DataElement("Proxy/dc:rights", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcRights']") .setCategories(REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:relation", + addPath(new DataElement("Proxy/dc:relation", "$.['proxies'][?(@['europeanaProxy'] == false)]['dcRelation']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:isNextInSequence", + addPath(new DataElement("Proxy/edm:isNextInSequence", "$.['proxies'][?(@['europeanaProxy'] == false)]['edmIsNextInSequence']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:type", + addPath(new DataElement("Proxy/edm:type", "$.['proxies'][?(@['europeanaProxy'] == false)]['edmType']") .setCategories(SEARCHABILITY, BROWSING)); /* - addPath(new JsonBranch("Proxy/edm:rights", + addPath(new DataElement("Proxy/edm:rights", "$.['proxies'][?(@['europeanaProxy'] == false)]['edm:rights']", Category.MANDATORY, Category.REUSABILITY)); */ - addPath(new JsonBranch("Aggregation/edm:rights", "$.['aggregations'][0]['edmRights']") + addPath(new DataElement("Aggregation/edm:rights", "$.['aggregations'][0]['edmRights']") .setCategories(MANDATORY, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:provider", "$.['aggregations'][0]['edmProvider']") + addPath(new DataElement("Aggregation/edm:provider", "$.['aggregations'][0]['edmProvider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:dataProvider","$.['aggregations'][0]['edmDataProvider']") + addPath(new DataElement("Aggregation/edm:dataProvider","$.['aggregations'][0]['edmDataProvider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION) .setExtractable()); - addPath(new JsonBranch("Aggregation/edm:isShownAt","$.['aggregations'][0]['edmIsShownAt']") + addPath(new DataElement("Aggregation/edm:isShownAt","$.['aggregations'][0]['edmIsShownAt']") .setCategories(BROWSING, Category.VIEWING)); - addPath(new JsonBranch("Aggregation/edm:isShownBy","$.['aggregations'][0]['edmIsShownBy']") + addPath(new DataElement("Aggregation/edm:isShownBy","$.['aggregations'][0]['edmIsShownBy']") .setCategories(BROWSING, Category.VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:object","$.['aggregations'][0]['edmObject']") + addPath(new DataElement("Aggregation/edm:object","$.['aggregations'][0]['edmObject']") .setCategories(Category.VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:hasView", "$.['aggregations'][0]['hasView']") + addPath(new DataElement("Aggregation/edm:hasView", "$.['aggregations'][0]['hasView']") .setCategories(BROWSING, Category.VIEWING)); fieldGroups.add( @@ -177,7 +177,7 @@ public Format getFormat() { } @Override - public List getCollectionPaths() { + public List getCollectionPaths() { return new ArrayList<>(); } } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanSchema.java index 488d8cd1..868845a0 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmFullBeanSchema.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; 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.schema.Format; import java.io.Serializable; @@ -39,237 +39,237 @@ private void initialize() { titlePath = "$.['proxies'][?(@['europeanaProxy'] == false)]['dcTitle']"; descriptionPath = "$.['proxies'][?(@['europeanaProxy'] == false)]['dcDescription']"; - var providedCHO = new JsonBranch("ProvidedCHO", "$.['providedCHOs'][0]"); + var providedCHO = new DataElement("ProvidedCHO", "$.['providedCHOs'][0]"); providedCHO.setCollection(true); addPath(providedCHO); - var providedCHOIdentifier = new JsonBranch("ProvidedCHO/rdf:about", + var providedCHOIdentifier = new DataElement("ProvidedCHO/rdf:about", providedCHO, ABOUT) .setCategories(MANDATORY); providedCHO.setIdentifier(providedCHOIdentifier); addPath(providedCHOIdentifier); - var proxy = new JsonBranch("Proxy", "$.['proxies'][?(@['europeanaProxy'] == false)]"); + var proxy = new DataElement("Proxy", "$.['proxies'][?(@['europeanaProxy'] == false)]"); proxy.setCollection(true); addPath(proxy); - var proxyIdentifier = new JsonBranch("Proxy/rdf:about", proxy, ABOUT); + var proxyIdentifier = new DataElement("Proxy/rdf:about", proxy, ABOUT); proxy.setIdentifier(proxyIdentifier); addPath(proxyIdentifier); - addPath(new JsonBranch("Proxy/dc:title", proxy, "$.['dcTitle']") + addPath(new DataElement("Proxy/dc:title", proxy, "$.['dcTitle']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_title_txt")); - addPath(new JsonBranch("Proxy/dcterms:alternative", proxy, "$.['dctermsAlternative']") + addPath(new DataElement("Proxy/dcterms:alternative", proxy, "$.['dctermsAlternative']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dcterms_alternative_txt")); - addPath(new JsonBranch("Proxy/dc:description", proxy, "$.['dcDescription']") + addPath(new DataElement("Proxy/dc:description", proxy, "$.['dcDescription']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_description_txt")); - addPath(new JsonBranch("Proxy/dc:creator", proxy, "$.['dcCreator']") + addPath(new DataElement("Proxy/dc:creator", proxy, "$.['dcCreator']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:publisher", proxy, "$.['dcPublisher']") + addPath(new DataElement("Proxy/dc:publisher", proxy, "$.['dcPublisher']") .setCategories(SEARCHABILITY, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:contributor", proxy, "$.['dcContributor']") + addPath(new DataElement("Proxy/dc:contributor", proxy, "$.['dcContributor']") .setCategories(SEARCHABILITY)); - addPath(new JsonBranch("Proxy/dc:type", proxy, "$.['dcType']") + addPath(new DataElement("Proxy/dc:type", proxy, "$.['dcType']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:identifier", proxy, "$.['dcIdentifier']") + addPath(new DataElement("Proxy/dc:identifier", proxy, "$.['dcIdentifier']") .setCategories(IDENTIFICATION)); - addPath(new JsonBranch("Proxy/dc:language", proxy, "$.['dcLanguage']") + addPath(new DataElement("Proxy/dc:language", proxy, "$.['dcLanguage']") .setCategories(DESCRIPTIVENESS, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:coverage", proxy, "$.['dcCoverage']") + addPath(new DataElement("Proxy/dc:coverage", proxy, "$.['dcCoverage']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:temporal", proxy, "$.['dctermsTemporal']") + addPath(new DataElement("Proxy/dcterms:temporal", proxy, "$.['dctermsTemporal']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:spatial", proxy, "$.['dctermsSpatial']") + addPath(new DataElement("Proxy/dcterms:spatial", proxy, "$.['dctermsSpatial']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:subject", proxy, "$.['dcSubject']") + addPath(new DataElement("Proxy/dc:subject", proxy, "$.['dcSubject']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:date", proxy, "$.['dcDate']") + addPath(new DataElement("Proxy/dc:date", proxy, "$.['dcDate']") .setCategories(IDENTIFICATION, BROWSING, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:created", proxy, "$.['dctermsCreated']") + addPath(new DataElement("Proxy/dcterms:created", proxy, "$.['dctermsCreated']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:issued", proxy, "$.['dctermsIssued']") + addPath(new DataElement("Proxy/dcterms:issued", proxy, "$.['dctermsIssued']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:extent", proxy, "$.['dctermsExtent']") + addPath(new DataElement("Proxy/dcterms:extent", proxy, "$.['dctermsExtent']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:medium", proxy, "$.['dctermsMedium']") + addPath(new DataElement("Proxy/dcterms:medium", proxy, "$.['dctermsMedium']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:provenance", proxy, "$.['dctermsProvenance']") + addPath(new DataElement("Proxy/dcterms:provenance", proxy, "$.['dctermsProvenance']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dcterms:hasPart", proxy, "$.['dctermsHasPart']") + addPath(new DataElement("Proxy/dcterms:hasPart", proxy, "$.['dctermsHasPart']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:isPartOf", proxy, "$.['dctermsIsPartOf']") + addPath(new DataElement("Proxy/dcterms:isPartOf", proxy, "$.['dctermsIsPartOf']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:format", proxy, "$.['dcFormat']") + addPath(new DataElement("Proxy/dc:format", proxy, "$.['dcFormat']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:source", proxy, "$.['dcSource']") + addPath(new DataElement("Proxy/dc:source", proxy, "$.['dcSource']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dc:rights", proxy, "$.['dcRights']") + addPath(new DataElement("Proxy/dc:rights", proxy, "$.['dcRights']") .setCategories(REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:relation", proxy, "$.['dcRelation']") + addPath(new DataElement("Proxy/dc:relation", proxy, "$.['dcRelation']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:isNextInSequence", proxy, "$.['edmIsNextInSequence']") + addPath(new DataElement("Proxy/edm:isNextInSequence", proxy, "$.['edmIsNextInSequence']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:type", proxy, "$.['edmType']") + addPath(new DataElement("Proxy/edm:type", proxy, "$.['edmType']") .setCategories(SEARCHABILITY, BROWSING)); /* - addPath(new JsonBranch("Proxy/edm:rights", proxy, "$.['edm:rights']", + addPath(new DataElement("Proxy/edm:rights", proxy, "$.['edm:rights']", Category.MANDATORY, Category.REUSABILITY)); */ - addPath(new JsonBranch("Proxy/edm:europeanaProxy", proxy, "$.['europeanaProxy']")); - addPath(new JsonBranch("Proxy/edm:year", proxy, "$.['year']")); - addPath(new JsonBranch("Proxy/edm:userTag", proxy, "$.['userTags']")); - addPath(new JsonBranch("Proxy/ore:proxyIn", proxy, "$.['proxyIn']")); - addPath(new JsonBranch("Proxy/ore:proxyFor", proxy, "$.['proxyFor']")); - addPath(new JsonBranch("Proxy/dcterms:conformsTo", proxy, "$.['dctermsConformsTo']")); - addPath(new JsonBranch("Proxy/dcterms:hasFormat", proxy, "$.['dctermsHasFormat']")); - addPath(new JsonBranch("Proxy/dcterms:hasVersion", proxy, "$.['dctermsHasVersion']")); - addPath(new JsonBranch("Proxy/dcterms:isFormatOf", proxy, "$.['dctermsIsFormatOf']")); - addPath(new JsonBranch("Proxy/dcterms:isReferencedBy", proxy, "$.['dctermsIsReferencedBy']")); - addPath(new JsonBranch("Proxy/dcterms:isReplacedBy", proxy, "$.['dctermsIsReplacedBy']")); - addPath(new JsonBranch("Proxy/dcterms:isRequiredBy", proxy, "$.['dctermsIsRequiredBy']")); - addPath(new JsonBranch("Proxy/dcterms:isVersionOf", proxy, "$.['dctermsIsVersionOf']")); - addPath(new JsonBranch("Proxy/dcterms:references", proxy, "$.['dctermsReferences']")); - addPath(new JsonBranch("Proxy/dcterms:replaces", proxy, "$.['dctermsReplaces']")); - addPath(new JsonBranch("Proxy/dcterms:requires", proxy, "$.['dctermsRequires']")); - addPath(new JsonBranch("Proxy/dcterms:tableOfContents", proxy, "$.['dctermsTOC']")); - addPath(new JsonBranch("Proxy/edm:currentLocation", proxy, "$.['edmCurrentLocation']")); - addPath(new JsonBranch("Proxy/edm:hasMet", proxy, "$.['edmHasMet']")); - addPath(new JsonBranch("Proxy/edm:hasType", proxy, "$.['edmHasType']")); - addPath(new JsonBranch("Proxy/edm:incorporates", proxy, "$.['edmIncorporates']")); - addPath(new JsonBranch("Proxy/edm:isDerivativeOf", proxy, "$.['edmIsDerivativeOf']")); - addPath(new JsonBranch("Proxy/edm:isRelatedTo", proxy, "$.['edmIsRelatedTo']")); - addPath(new JsonBranch("Proxy/edm:isRepresentationOf", proxy, "$.['edmIsRepresentationOf']")); - addPath(new JsonBranch("Proxy/edm:isSimilarTo", proxy, "$.['edmIsSimilarTo']")); - addPath(new JsonBranch("Proxy/edm:isSuccessorOf", proxy, "$.['edmIsSuccessorOf']")); - addPath(new JsonBranch("Proxy/edm:realizes", proxy, "$.['edmRealizes']")); - addPath(new JsonBranch("Proxy/edm:wasPresentAt", proxy, "$.['edmWasPresentAt']")); - - var aggregation = new JsonBranch("Aggregation", "$.['aggregations'][0]"); + addPath(new DataElement("Proxy/edm:europeanaProxy", proxy, "$.['europeanaProxy']")); + addPath(new DataElement("Proxy/edm:year", proxy, "$.['year']")); + addPath(new DataElement("Proxy/edm:userTag", proxy, "$.['userTags']")); + addPath(new DataElement("Proxy/ore:proxyIn", proxy, "$.['proxyIn']")); + addPath(new DataElement("Proxy/ore:proxyFor", proxy, "$.['proxyFor']")); + addPath(new DataElement("Proxy/dcterms:conformsTo", proxy, "$.['dctermsConformsTo']")); + addPath(new DataElement("Proxy/dcterms:hasFormat", proxy, "$.['dctermsHasFormat']")); + addPath(new DataElement("Proxy/dcterms:hasVersion", proxy, "$.['dctermsHasVersion']")); + addPath(new DataElement("Proxy/dcterms:isFormatOf", proxy, "$.['dctermsIsFormatOf']")); + addPath(new DataElement("Proxy/dcterms:isReferencedBy", proxy, "$.['dctermsIsReferencedBy']")); + addPath(new DataElement("Proxy/dcterms:isReplacedBy", proxy, "$.['dctermsIsReplacedBy']")); + addPath(new DataElement("Proxy/dcterms:isRequiredBy", proxy, "$.['dctermsIsRequiredBy']")); + addPath(new DataElement("Proxy/dcterms:isVersionOf", proxy, "$.['dctermsIsVersionOf']")); + addPath(new DataElement("Proxy/dcterms:references", proxy, "$.['dctermsReferences']")); + addPath(new DataElement("Proxy/dcterms:replaces", proxy, "$.['dctermsReplaces']")); + addPath(new DataElement("Proxy/dcterms:requires", proxy, "$.['dctermsRequires']")); + addPath(new DataElement("Proxy/dcterms:tableOfContents", proxy, "$.['dctermsTOC']")); + addPath(new DataElement("Proxy/edm:currentLocation", proxy, "$.['edmCurrentLocation']")); + addPath(new DataElement("Proxy/edm:hasMet", proxy, "$.['edmHasMet']")); + addPath(new DataElement("Proxy/edm:hasType", proxy, "$.['edmHasType']")); + addPath(new DataElement("Proxy/edm:incorporates", proxy, "$.['edmIncorporates']")); + addPath(new DataElement("Proxy/edm:isDerivativeOf", proxy, "$.['edmIsDerivativeOf']")); + addPath(new DataElement("Proxy/edm:isRelatedTo", proxy, "$.['edmIsRelatedTo']")); + addPath(new DataElement("Proxy/edm:isRepresentationOf", proxy, "$.['edmIsRepresentationOf']")); + addPath(new DataElement("Proxy/edm:isSimilarTo", proxy, "$.['edmIsSimilarTo']")); + addPath(new DataElement("Proxy/edm:isSuccessorOf", proxy, "$.['edmIsSuccessorOf']")); + addPath(new DataElement("Proxy/edm:realizes", proxy, "$.['edmRealizes']")); + addPath(new DataElement("Proxy/edm:wasPresentAt", proxy, "$.['edmWasPresentAt']")); + + var aggregation = new DataElement("Aggregation", "$.['aggregations'][0]"); aggregation.setCollection(true); addPath(aggregation); - var aggregationIdentifier = new JsonBranch("Aggregation/rdf:about", aggregation, ABOUT); + var aggregationIdentifier = new DataElement("Aggregation/rdf:about", aggregation, ABOUT); addPath(aggregationIdentifier); aggregation.setIdentifier(aggregationIdentifier); - addPath(new JsonBranch("Aggregation/edm:rights", aggregation, "$.['edmRights']") + addPath(new DataElement("Aggregation/edm:rights", aggregation, "$.['edmRights']") .setCategories(MANDATORY, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:provider", aggregation, "$.['edmProvider']") + addPath(new DataElement("Aggregation/edm:provider", aggregation, "$.['edmProvider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:dataProvider", aggregation, "$.['edmDataProvider']") + addPath(new DataElement("Aggregation/edm:dataProvider", aggregation, "$.['edmDataProvider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:isShownAt", aggregation, "$.['edmIsShownAt']") + addPath(new DataElement("Aggregation/edm:isShownAt", aggregation, "$.['edmIsShownAt']") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/edm:isShownBy", aggregation, "$.['edmIsShownBy']") + addPath(new DataElement("Aggregation/edm:isShownBy", aggregation, "$.['edmIsShownBy']") .setCategories(BROWSING, VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:object", aggregation, "$.['edmObject']") + addPath(new DataElement("Aggregation/edm:object", aggregation, "$.['edmObject']") .setCategories(VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:hasView", aggregation, "$.['hasView']") + addPath(new DataElement("Aggregation/edm:hasView", aggregation, "$.['hasView']") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/dc:rights", aggregation, "$.['dcRights']")); - addPath(new JsonBranch("Aggregation/edm:ugc", aggregation, "$.['edmUgc']")); - addPath(new JsonBranch("Aggregation/edm:aggregatedCHO", aggregation, "$.['aggregatedCHO']")); - addPath(new JsonBranch("Aggregation/edm:intermediateProvider", aggregation, "$.['edmIntermediateProvider']")); + addPath(new DataElement("Aggregation/dc:rights", aggregation, "$.['dcRights']")); + addPath(new DataElement("Aggregation/edm:ugc", aggregation, "$.['edmUgc']")); + addPath(new DataElement("Aggregation/edm:aggregatedCHO", aggregation, "$.['aggregatedCHO']")); + addPath(new DataElement("Aggregation/edm:intermediateProvider", aggregation, "$.['edmIntermediateProvider']")); - var place = new JsonBranch("Place", "$.['places']"); + var place = new DataElement("Place", "$.['places']"); place.setCollection(true); addPath(place); - var placeIdentifier = new JsonBranch("Place/rdf:about", place, ABOUT); + var placeIdentifier = new DataElement("Place/rdf:about", place, ABOUT); addPath(placeIdentifier); place.setIdentifier(placeIdentifier); - addPath(new JsonBranch("Place/rdf:about", place, ABOUT)); - addPath(new JsonBranch("Place/wgs84:lat", place, "$.['latitude']")); - addPath(new JsonBranch("Place/wgs84:long", place, "$.['longitude']")); - addPath(new JsonBranch("Place/wgs84:alt", place, "$.['altitude']")); - addPath(new JsonBranch("Place/dcterms:isPartOf", place, "$.['isPartOf']")); - addPath(new JsonBranch("Place/wgs84_pos:lat_long", place, "$.['position']")); - addPath(new JsonBranch("Place/dcterms:hasPart", place, "$.['dctermsHasPart']")); - addPath(new JsonBranch("Place/owl:sameAs", place, "$.['owlSameAs']")); - addPath(new JsonBranch("Place/skos:prefLabel", place, "$.['prefLabel']")); - addPath(new JsonBranch("Place/skos:altLabel", place, "$.['altLabel']")); - addPath(new JsonBranch("Place/skos:note", place, "$.['note']")); - - var agent = new JsonBranch("Agent", "$.['agents']"); + addPath(new DataElement("Place/rdf:about", place, ABOUT)); + addPath(new DataElement("Place/wgs84:lat", place, "$.['latitude']")); + addPath(new DataElement("Place/wgs84:long", place, "$.['longitude']")); + addPath(new DataElement("Place/wgs84:alt", place, "$.['altitude']")); + addPath(new DataElement("Place/dcterms:isPartOf", place, "$.['isPartOf']")); + addPath(new DataElement("Place/wgs84_pos:lat_long", place, "$.['position']")); + addPath(new DataElement("Place/dcterms:hasPart", place, "$.['dctermsHasPart']")); + addPath(new DataElement("Place/owl:sameAs", place, "$.['owlSameAs']")); + addPath(new DataElement("Place/skos:prefLabel", place, "$.['prefLabel']")); + addPath(new DataElement("Place/skos:altLabel", place, "$.['altLabel']")); + addPath(new DataElement("Place/skos:note", place, "$.['note']")); + + var agent = new DataElement("Agent", "$.['agents']"); agent.setCollection(true); addPath(agent); - var agentIdentifier = new JsonBranch("Agent/rdf:about", agent, ABOUT); + var agentIdentifier = new DataElement("Agent/rdf:about", agent, ABOUT); addPath(agentIdentifier); agent.setIdentifier(agentIdentifier); - addPath(new JsonBranch("Agent/edm:begin", agent, "$.['begin']")); - addPath(new JsonBranch("Agent/edm:end", agent, "$.['end']")); - addPath(new JsonBranch("Agent/edm:hasMet", agent, "$.['edmHasMet']")); - addPath(new JsonBranch("Agent/edm:isRelatedTo", agent, "$.['edmIsRelatedTo']")); - addPath(new JsonBranch("Agent/owl:sameAs", agent, "$.['owlSameAs']")); - addPath(new JsonBranch("Agent/foaf:name", agent, "$.['foafName']")); - addPath(new JsonBranch("Agent/dc:date", agent, "$.['dcDate']")); - addPath(new JsonBranch("Agent/dc:identifier", agent, "$.['dcIdentifier']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfBirth", agent, "$.['rdaGr2DateOfBirth']")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfBirth", agent, "$.['rdaGr2PlaceOfBirth']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfDeath", agent, "$.['rdaGr2DateOfDeath']")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfDeath", agent, "$.['rdaGr2PlaceOfDeath']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfEstablishment", agent, "$.['rdaGr2DateOfEstablishment']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfTermination", agent, "$.['rdaGr2DateOfTermination']")); - addPath(new JsonBranch("Agent/rdaGr2:gender", agent, "$.['rdaGr2Gender']")); - addPath(new JsonBranch("Agent/rdaGr2:professionOrOccupation", agent, "$.['rdaGr2ProfessionOrOccupation']")); - addPath(new JsonBranch("Agent/rdaGr2:biographicalInformation", agent, "$.['rdaGr2BiographicalInformation']")); - addPath(new JsonBranch("Agent/skos:prefLabel", agent, "$.['prefLabel']")); - addPath(new JsonBranch("Agent/skos:altLabel", agent, "$.['altLabel']")); - addPath(new JsonBranch("Agent/skos:note", agent, "$.['note']")); - - var timespan = new JsonBranch("Timespan", "$.['timespans']"); + addPath(new DataElement("Agent/edm:begin", agent, "$.['begin']")); + addPath(new DataElement("Agent/edm:end", agent, "$.['end']")); + addPath(new DataElement("Agent/edm:hasMet", agent, "$.['edmHasMet']")); + addPath(new DataElement("Agent/edm:isRelatedTo", agent, "$.['edmIsRelatedTo']")); + addPath(new DataElement("Agent/owl:sameAs", agent, "$.['owlSameAs']")); + addPath(new DataElement("Agent/foaf:name", agent, "$.['foafName']")); + addPath(new DataElement("Agent/dc:date", agent, "$.['dcDate']")); + addPath(new DataElement("Agent/dc:identifier", agent, "$.['dcIdentifier']")); + addPath(new DataElement("Agent/rdaGr2:dateOfBirth", agent, "$.['rdaGr2DateOfBirth']")); + addPath(new DataElement("Agent/rdaGr2:placeOfBirth", agent, "$.['rdaGr2PlaceOfBirth']")); + addPath(new DataElement("Agent/rdaGr2:dateOfDeath", agent, "$.['rdaGr2DateOfDeath']")); + addPath(new DataElement("Agent/rdaGr2:placeOfDeath", agent, "$.['rdaGr2PlaceOfDeath']")); + addPath(new DataElement("Agent/rdaGr2:dateOfEstablishment", agent, "$.['rdaGr2DateOfEstablishment']")); + addPath(new DataElement("Agent/rdaGr2:dateOfTermination", agent, "$.['rdaGr2DateOfTermination']")); + addPath(new DataElement("Agent/rdaGr2:gender", agent, "$.['rdaGr2Gender']")); + addPath(new DataElement("Agent/rdaGr2:professionOrOccupation", agent, "$.['rdaGr2ProfessionOrOccupation']")); + addPath(new DataElement("Agent/rdaGr2:biographicalInformation", agent, "$.['rdaGr2BiographicalInformation']")); + addPath(new DataElement("Agent/skos:prefLabel", agent, "$.['prefLabel']")); + addPath(new DataElement("Agent/skos:altLabel", agent, "$.['altLabel']")); + addPath(new DataElement("Agent/skos:note", agent, "$.['note']")); + + var timespan = new DataElement("Timespan", "$.['timespans']"); timespan.setCollection(true); addPath(timespan); - var timespanIdentifier = new JsonBranch("Timespan/rdf:about", timespan, ABOUT); + var timespanIdentifier = new DataElement("Timespan/rdf:about", timespan, ABOUT); addPath(timespanIdentifier); timespan.setIdentifier(timespanIdentifier); - addPath(new JsonBranch("Timespan/rdf:about", timespan, ABOUT)); - addPath(new JsonBranch("Timespan/edm:begin", timespan, "$.['begin']")); - addPath(new JsonBranch("Timespan/edm:end", timespan, "$.['end']")); - addPath(new JsonBranch("Timespan/dcterms:isPartOf", timespan, "$.['isPartOf']")); - addPath(new JsonBranch("Timespan/dcterms:hasPart", timespan, "$.['hasPart']")); - addPath(new JsonBranch("Timespan/edm:isNextInSequence", timespan, "$.['edm:isNextInSequence']")); - addPath(new JsonBranch("Timespan/owl:sameAs", timespan, "$.['owlSameAs']")); - addPath(new JsonBranch("Timespan/skos:prefLabel", timespan, "$.['prefLabel']")); - addPath(new JsonBranch("Timespan/skos:altLabel", timespan, "$.['altLabel']")); - addPath(new JsonBranch("Timespan/skos:note", timespan, "$.['note']")); - - var concept = new JsonBranch("Concept", "$.['concepts']"); + addPath(new DataElement("Timespan/rdf:about", timespan, ABOUT)); + addPath(new DataElement("Timespan/edm:begin", timespan, "$.['begin']")); + addPath(new DataElement("Timespan/edm:end", timespan, "$.['end']")); + addPath(new DataElement("Timespan/dcterms:isPartOf", timespan, "$.['isPartOf']")); + addPath(new DataElement("Timespan/dcterms:hasPart", timespan, "$.['hasPart']")); + addPath(new DataElement("Timespan/edm:isNextInSequence", timespan, "$.['edm:isNextInSequence']")); + addPath(new DataElement("Timespan/owl:sameAs", timespan, "$.['owlSameAs']")); + addPath(new DataElement("Timespan/skos:prefLabel", timespan, "$.['prefLabel']")); + addPath(new DataElement("Timespan/skos:altLabel", timespan, "$.['altLabel']")); + addPath(new DataElement("Timespan/skos:note", timespan, "$.['note']")); + + var concept = new DataElement("Concept", "$.['concepts']"); concept.setCollection(true); addPath(concept); - var conceptIdentifier = new JsonBranch("Concept/rdf:about", concept, ABOUT); + var conceptIdentifier = new DataElement("Concept/rdf:about", concept, ABOUT); addPath(conceptIdentifier); concept.setIdentifier(conceptIdentifier); - addPath(new JsonBranch("Concept/rdf:about", concept, ABOUT)); - addPath(new JsonBranch("Concept/skos:broader", concept, "$.['broader']")); - addPath(new JsonBranch("Concept/skos:narrower", concept, "$.['narrower']")); - addPath(new JsonBranch("Concept/skos:related", concept, "$.['related']")); - addPath(new JsonBranch("Concept/skos:broadMatch", concept, "$.['broadMatch']")); - addPath(new JsonBranch("Concept/skos:narrowMatch", concept, "$.['narrowMatch']")); - addPath(new JsonBranch("Concept/skos:relatedMatch", concept, "$.['relatedMatch']")); - addPath(new JsonBranch("Concept/skos:exactMatch", concept, "$.['exactMatch']")); - addPath(new JsonBranch("Concept/skos:closeMatch", concept, "$.['closeMatch']")); - addPath(new JsonBranch("Concept/skos:notation", concept, "$.['notation']")); - addPath(new JsonBranch("Concept/skos:inScheme", concept, "$.['inScheme']")); - addPath(new JsonBranch("Concept/skos:prefLabel", concept, "$.['prefLabel']")); - addPath(new JsonBranch("Concept/skos:altLabel", concept, "$.['altLabel']")); - addPath(new JsonBranch("Concept/skos:note", concept, "$.['note']")); - - var europeanaAggregation = new JsonBranch("EuropeanaAggregation", "$.['europeanaAggregation']") + addPath(new DataElement("Concept/rdf:about", concept, ABOUT)); + addPath(new DataElement("Concept/skos:broader", concept, "$.['broader']")); + addPath(new DataElement("Concept/skos:narrower", concept, "$.['narrower']")); + addPath(new DataElement("Concept/skos:related", concept, "$.['related']")); + addPath(new DataElement("Concept/skos:broadMatch", concept, "$.['broadMatch']")); + addPath(new DataElement("Concept/skos:narrowMatch", concept, "$.['narrowMatch']")); + addPath(new DataElement("Concept/skos:relatedMatch", concept, "$.['relatedMatch']")); + addPath(new DataElement("Concept/skos:exactMatch", concept, "$.['exactMatch']")); + addPath(new DataElement("Concept/skos:closeMatch", concept, "$.['closeMatch']")); + addPath(new DataElement("Concept/skos:notation", concept, "$.['notation']")); + addPath(new DataElement("Concept/skos:inScheme", concept, "$.['inScheme']")); + addPath(new DataElement("Concept/skos:prefLabel", concept, "$.['prefLabel']")); + addPath(new DataElement("Concept/skos:altLabel", concept, "$.['altLabel']")); + addPath(new DataElement("Concept/skos:note", concept, "$.['note']")); + + var europeanaAggregation = new DataElement("EuropeanaAggregation", "$.['europeanaAggregation']") .setActive(false); europeanaAggregation.setCollection(true); addPath(europeanaAggregation); - addPath(new JsonBranch("EuropeanaAggregation/edm:country", europeanaAggregation, "$.['edmCountry']") + addPath(new DataElement("EuropeanaAggregation/edm:country", europeanaAggregation, "$.['edmCountry']") .setActive(false)); - addPath(new JsonBranch("EuropeanaAggregation/edm:language", europeanaAggregation, "$.['edmLanguage']") + addPath(new DataElement("EuropeanaAggregation/edm:language", europeanaAggregation, "$.['edmLanguage']") .setActive(false)); fieldGroups.add( @@ -329,7 +329,7 @@ public Format getFormat() { } @Override - public List getCollectionPaths() { + public List getCollectionPaths() { return new ArrayList(collectionPaths.values()); } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmLimitedJsonSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmLimitedJsonSchema.java index 4f95e3a8..6acaf9f8 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmLimitedJsonSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmLimitedJsonSchema.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; 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.schema.Format; @@ -28,137 +28,137 @@ private void initialize() { titlePath = "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:title']"; descriptionPath = "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:description']"; - addPath(new JsonBranch("edm:ProvidedCHO/@about", + addPath(new DataElement("edm:ProvidedCHO/@about", "$.['edm:ProvidedCHO'][0]['@about']") .setCategories(Category.MANDATORY)); - addPath(new JsonBranch("Proxy/dc:title", + addPath(new DataElement("Proxy/dc:title", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:title']") .setCategories(Category.DESCRIPTIVENESS, Category.SEARCHABILITY, Category.IDENTIFICATION, Category.MULTILINGUALITY) .setIndexField("dc_title_txt") ); - addPath(new JsonBranch("Proxy/dcterms:alternative", + addPath(new DataElement("Proxy/dcterms:alternative", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:alternative']") .setCategories(Category.DESCRIPTIVENESS, Category.SEARCHABILITY, Category.IDENTIFICATION, Category.MULTILINGUALITY) .setIndexField("dcterms_alternative_txt") ); - addPath(new JsonBranch("Proxy/dc:description", + addPath(new DataElement("Proxy/dc:description", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:description']") .setCategories(Category.DESCRIPTIVENESS, Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.IDENTIFICATION, Category.MULTILINGUALITY) .setIndexField("dc_description_txt") ); - addPath(new JsonBranch("Proxy/dc:creator", + addPath(new DataElement("Proxy/dc:creator", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:creator']") .setCategories(Category.DESCRIPTIVENESS, Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dc:publisher", + addPath(new DataElement("Proxy/dc:publisher", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:publisher']") .setCategories(Category.SEARCHABILITY, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:contributor", + addPath(new DataElement("Proxy/dc:contributor", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:contributor']") .setCategories(Category.SEARCHABILITY)); - addPath(new JsonBranch("Proxy/dc:type", + addPath(new DataElement("Proxy/dc:type", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:type']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.IDENTIFICATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dc:identifier", + addPath(new DataElement("Proxy/dc:identifier", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:identifier']") .setCategories(Category.IDENTIFICATION)); - addPath(new JsonBranch("Proxy/dc:language", + addPath(new DataElement("Proxy/dc:language", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:language']") .setCategories(Category.DESCRIPTIVENESS, Category.MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:coverage", + addPath(new DataElement("Proxy/dc:coverage", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:coverage']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:temporal", + addPath(new DataElement("Proxy/dcterms:temporal", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:temporal']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:spatial", + addPath(new DataElement("Proxy/dcterms:spatial", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:spatial']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dc:subject", + addPath(new DataElement("Proxy/dc:subject", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:subject']") .setCategories(Category.DESCRIPTIVENESS, Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:date", + addPath(new DataElement("Proxy/dc:date", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:date']") .setCategories(Category.IDENTIFICATION, Category.BROWSING, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:created", + addPath(new DataElement("Proxy/dcterms:created", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:created']") .setCategories(Category.IDENTIFICATION, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:issued", + addPath(new DataElement("Proxy/dcterms:issued", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:issued']") .setCategories(Category.IDENTIFICATION, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:extent", + addPath(new DataElement("Proxy/dcterms:extent", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:extent']") .setCategories(Category.DESCRIPTIVENESS, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:medium", + addPath(new DataElement("Proxy/dcterms:medium", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:medium']") .setCategories(Category.DESCRIPTIVENESS, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:provenance", + addPath(new DataElement("Proxy/dcterms:provenance", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:provenance']") .setCategories(Category.DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dcterms:hasPart", + addPath(new DataElement("Proxy/dcterms:hasPart", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:hasPart']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:isPartOf", + addPath(new DataElement("Proxy/dcterms:isPartOf", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dcterms:isPartOf']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/dc:format", + addPath(new DataElement("Proxy/dc:format", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:format']") .setCategories(Category.DESCRIPTIVENESS, Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:source", + addPath(new DataElement("Proxy/dc:source", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:source']") .setCategories(Category.DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dc:rights", + addPath(new DataElement("Proxy/dc:rights", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:rights']") .setCategories(Category.REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:relation", + addPath(new DataElement("Proxy/dc:relation", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:relation']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/edm:isNextInSequence", + addPath(new DataElement("Proxy/edm:isNextInSequence", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['edm:isNextInSequence']") .setCategories(Category.SEARCHABILITY, Category.CONTEXTUALIZATION, Category.BROWSING)); - addPath(new JsonBranch("Proxy/edm:type", + addPath(new DataElement("Proxy/edm:type", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['edm:type']") .setCategories(Category.SEARCHABILITY, Category.BROWSING)); /* - addPath(new JsonBranch("Proxy/edm:rights", + addPath(new DataELement("Proxy/edm:rights", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['edm:rights']", Category.MANDATORY, Category.REUSABILITY)); */ - addPath(new JsonBranch("Aggregation/edm:rights", + addPath(new DataElement("Aggregation/edm:rights", "$.['ore:Aggregation'][0]['edm:rights']") .setCategories(Category.MANDATORY, Category.REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:provider", + addPath(new DataElement("Aggregation/edm:provider", "$.['ore:Aggregation'][0]['edm:provider']") .setCategories(Category.MANDATORY, Category.SEARCHABILITY, Category.IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:dataProvider", + addPath(new DataElement("Aggregation/edm:dataProvider", "$.['ore:Aggregation'][0]['edm:dataProvider']") .setCategories(Category.MANDATORY, Category.SEARCHABILITY, Category.IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:isShownAt", + addPath(new DataElement("Aggregation/edm:isShownAt", "$.['ore:Aggregation'][0]['edm:isShownAt']") .setCategories(Category.BROWSING, Category.VIEWING)); - addPath(new JsonBranch("Aggregation/edm:isShownBy", + addPath(new DataElement("Aggregation/edm:isShownBy", "$.['ore:Aggregation'][0]['edm:isShownBy']") .setCategories(Category.BROWSING, Category.VIEWING, Category.REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:object", + addPath(new DataElement("Aggregation/edm:object", "$.['ore:Aggregation'][0]['edm:object']") .setCategories(Category.VIEWING, Category.REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:hasView", + addPath(new DataElement("Aggregation/edm:hasView", "$.['ore:Aggregation'][0]['edm:hasView']") .setCategories(Category.BROWSING, Category.VIEWING)); @@ -202,17 +202,17 @@ public Format getFormat() { } @Override - public List getCollectionPaths() { + public List getCollectionPaths() { return new ArrayList<>(); } @Override - public List getRootChildrenPaths() { + public List getRootChildrenPaths() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override - public JsonBranch getPathByLabel(String label) { + public DataElement getPathByLabel(String label) { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhJsonSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhJsonSchema.java index 3c584bf7..1e39b300 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhJsonSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhJsonSchema.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; 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.schema.Format; import java.io.Serializable; @@ -37,227 +37,227 @@ private void initialize() { titlePath = "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:title']"; descriptionPath = "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]['dc:description']"; - var providedCHO = new JsonBranch("ProvidedCHO", "$.['edm:ProvidedCHO'][0]"); + var providedCHO = new DataElement("ProvidedCHO", "$.['edm:ProvidedCHO'][0]"); providedCHO.setCollection(true); addPath(providedCHO); - var providedCHOIdentifier = new JsonBranch("ProvidedCHO/rdf:about", + var providedCHOIdentifier = new DataElement("ProvidedCHO/rdf:about", providedCHO, "$.['@about']") .setCategories(MANDATORY) .setExtractable(); providedCHO.setIdentifier(providedCHOIdentifier); addPath(providedCHOIdentifier); - var proxy = new JsonBranch("Proxy", + var proxy = new DataElement("Proxy", "$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')]"); proxy.setCollection(true); addPath(proxy); - var proxyIdentifier = new JsonBranch("Proxy/rdf:about", proxy, "$.['@about']"); + var proxyIdentifier = new DataElement("Proxy/rdf:about", proxy, "$.['@about']"); proxy.setIdentifier(proxyIdentifier); addPath(proxyIdentifier); - addPath(new JsonBranch("Proxy/dc:title", proxy, "$.['dc:title']") + addPath(new DataElement("Proxy/dc:title", proxy, "$.['dc:title']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_title_txt")); - addPath(new JsonBranch("Proxy/dcterms:alternative", proxy, "$.['dcterms:alternative']") + addPath(new DataElement("Proxy/dcterms:alternative", proxy, "$.['dcterms:alternative']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dcterms_alternative_txt")); - addPath(new JsonBranch("Proxy/dc:description", proxy, "$.['dc:description']") + addPath(new DataElement("Proxy/dc:description", proxy, "$.['dc:description']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_description_txt")); - addPath(new JsonBranch("Proxy/dc:creator", proxy, "$.['dc:creator']") + addPath(new DataElement("Proxy/dc:creator", proxy, "$.['dc:creator']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:publisher", proxy, "$.['dc:publisher']") + addPath(new DataElement("Proxy/dc:publisher", proxy, "$.['dc:publisher']") .setCategories(SEARCHABILITY, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:contributor", proxy, "$.['dc:contributor']") + addPath(new DataElement("Proxy/dc:contributor", proxy, "$.['dc:contributor']") .setCategories(SEARCHABILITY)); - addPath(new JsonBranch("Proxy/dc:type", proxy, "$.['dc:type']") + addPath(new DataElement("Proxy/dc:type", proxy, "$.['dc:type']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:identifier", proxy, "$.['dc:identifier']") + addPath(new DataElement("Proxy/dc:identifier", proxy, "$.['dc:identifier']") .setCategories(IDENTIFICATION)); - addPath(new JsonBranch("Proxy/dc:language", proxy, "$.['dc:language']") + addPath(new DataElement("Proxy/dc:language", proxy, "$.['dc:language']") .setCategories(DESCRIPTIVENESS, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:coverage", proxy, "$.['dc:coverage']") + addPath(new DataElement("Proxy/dc:coverage", proxy, "$.['dc:coverage']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:temporal", proxy, "$.['dcterms:temporal']") + addPath(new DataElement("Proxy/dcterms:temporal", proxy, "$.['dcterms:temporal']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:spatial", proxy, "$.['dcterms:spatial']") + addPath(new DataElement("Proxy/dcterms:spatial", proxy, "$.['dcterms:spatial']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:subject", proxy, "$.['dc:subject']") + addPath(new DataElement("Proxy/dc:subject", proxy, "$.['dc:subject']") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:date", proxy, "$.['dc:date']") + addPath(new DataElement("Proxy/dc:date", proxy, "$.['dc:date']") .setCategories(IDENTIFICATION, BROWSING, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:created", proxy, "$.['dcterms:created']") + addPath(new DataElement("Proxy/dcterms:created", proxy, "$.['dcterms:created']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:issued", proxy, "$.['dcterms:issued']") + addPath(new DataElement("Proxy/dcterms:issued", proxy, "$.['dcterms:issued']") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:extent", proxy, "$.['dcterms:extent']") + addPath(new DataElement("Proxy/dcterms:extent", proxy, "$.['dcterms:extent']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:medium", proxy, "$.['dcterms:medium']") + addPath(new DataElement("Proxy/dcterms:medium", proxy, "$.['dcterms:medium']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:provenance", proxy, "$.['dcterms:provenance']") + addPath(new DataElement("Proxy/dcterms:provenance", proxy, "$.['dcterms:provenance']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dcterms:hasPart", proxy, "$.['dcterms:hasPart']") + addPath(new DataElement("Proxy/dcterms:hasPart", proxy, "$.['dcterms:hasPart']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:isPartOf", proxy, "$.['dcterms:isPartOf']") + addPath(new DataElement("Proxy/dcterms:isPartOf", proxy, "$.['dcterms:isPartOf']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:format", proxy, "$.['dc:format']") + addPath(new DataElement("Proxy/dc:format", proxy, "$.['dc:format']") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:source", proxy, "$.['dc:source']") + addPath(new DataElement("Proxy/dc:source", proxy, "$.['dc:source']") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dc:rights", proxy, "$.['dc:rights']") + addPath(new DataElement("Proxy/dc:rights", proxy, "$.['dc:rights']") .setCategories(REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:relation", proxy, "$.['dc:relation']") + addPath(new DataElement("Proxy/dc:relation", proxy, "$.['dc:relation']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:isNextInSequence", proxy, "$.['edm:isNextInSequence']") + addPath(new DataElement("Proxy/edm:isNextInSequence", proxy, "$.['edm:isNextInSequence']") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:type", proxy, "$.['edm:type']") + addPath(new DataElement("Proxy/edm:type", proxy, "$.['edm:type']") .setCategories(SEARCHABILITY, BROWSING)); - addPath(new JsonBranch("Proxy/edm:europeanaProxy", proxy, "$.['edm:europeanaProxy']")); - addPath(new JsonBranch("Proxy/edm:year", proxy, "$.['edm:year']")); - addPath(new JsonBranch("Proxy/edm:userTag", proxy, "$.['edm:userTag']")); - addPath(new JsonBranch("Proxy/ore:proxyIn", proxy, "$.['ore:proxyIn']")); - addPath(new JsonBranch("Proxy/ore:proxyFor", proxy, "$.['ore:proxyFor']")); - addPath(new JsonBranch("Proxy/dcterms:conformsTo", proxy, "$.['dcterms:conformsTo']")); - addPath(new JsonBranch("Proxy/dcterms:hasFormat", proxy, "$.['dcterms:hasFormat']")); - addPath(new JsonBranch("Proxy/dcterms:hasVersion", proxy, "$.['dcterms:hasVersion']")); - addPath(new JsonBranch("Proxy/dcterms:isFormatOf", proxy, "$.['dcterms:isFormatOf']")); - addPath(new JsonBranch("Proxy/dcterms:isReferencedBy", proxy, "$.['dcterms:isReferencedBy']")); - addPath(new JsonBranch("Proxy/dcterms:isReplacedBy", proxy, "$.['dcterms:isReplacedBy']")); - addPath(new JsonBranch("Proxy/dcterms:isRequiredBy", proxy, "$.['dcterms:isRequiredBy']")); - addPath(new JsonBranch("Proxy/dcterms:isVersionOf", proxy, "$.['dcterms:isVersionOf']")); - addPath(new JsonBranch("Proxy/dcterms:references", proxy, "$.['dcterms:references']")); - addPath(new JsonBranch("Proxy/dcterms:replaces", proxy, "$.['dcterms:replaces']")); - addPath(new JsonBranch("Proxy/dcterms:requires", proxy, "$.['dcterms:requires']")); - addPath(new JsonBranch("Proxy/dcterms:tableOfContents", proxy, "$.['dcterms:tableOfContents']")); - addPath(new JsonBranch("Proxy/edm:currentLocation", proxy, "$.['edm:currentLocation']")); - addPath(new JsonBranch("Proxy/edm:hasMet", proxy, "$.['edm:hasMet']")); - addPath(new JsonBranch("Proxy/edm:hasType", proxy, "$.['edm:hasType']")); - addPath(new JsonBranch("Proxy/edm:incorporates", proxy, "$.['edm:incorporates']")); - addPath(new JsonBranch("Proxy/edm:isDerivativeOf", proxy, "$.['edm:isDerivativeOf']")); - addPath(new JsonBranch("Proxy/edm:isRelatedTo", proxy, "$.['edm:isRelatedTo']")); - addPath(new JsonBranch("Proxy/edm:isRepresentationOf", proxy, "$.['edm:isRepresentationOf']")); - addPath(new JsonBranch("Proxy/edm:isSimilarTo", proxy, "$.['edm:isSimilarTo']")); - addPath(new JsonBranch("Proxy/edm:isSuccessorOf", proxy, "$.['edm:isSuccessorOf']")); - addPath(new JsonBranch("Proxy/edm:realizes", proxy, "$.['edm:realizes']")); - addPath(new JsonBranch("Proxy/edm:wasPresentAt", proxy, "$.['edm:wasPresentAt']")); + addPath(new DataElement("Proxy/edm:europeanaProxy", proxy, "$.['edm:europeanaProxy']")); + addPath(new DataElement("Proxy/edm:year", proxy, "$.['edm:year']")); + addPath(new DataElement("Proxy/edm:userTag", proxy, "$.['edm:userTag']")); + addPath(new DataElement("Proxy/ore:proxyIn", proxy, "$.['ore:proxyIn']")); + addPath(new DataElement("Proxy/ore:proxyFor", proxy, "$.['ore:proxyFor']")); + addPath(new DataElement("Proxy/dcterms:conformsTo", proxy, "$.['dcterms:conformsTo']")); + addPath(new DataElement("Proxy/dcterms:hasFormat", proxy, "$.['dcterms:hasFormat']")); + addPath(new DataElement("Proxy/dcterms:hasVersion", proxy, "$.['dcterms:hasVersion']")); + addPath(new DataElement("Proxy/dcterms:isFormatOf", proxy, "$.['dcterms:isFormatOf']")); + addPath(new DataElement("Proxy/dcterms:isReferencedBy", proxy, "$.['dcterms:isReferencedBy']")); + addPath(new DataElement("Proxy/dcterms:isReplacedBy", proxy, "$.['dcterms:isReplacedBy']")); + addPath(new DataElement("Proxy/dcterms:isRequiredBy", proxy, "$.['dcterms:isRequiredBy']")); + addPath(new DataElement("Proxy/dcterms:isVersionOf", proxy, "$.['dcterms:isVersionOf']")); + addPath(new DataElement("Proxy/dcterms:references", proxy, "$.['dcterms:references']")); + addPath(new DataElement("Proxy/dcterms:replaces", proxy, "$.['dcterms:replaces']")); + addPath(new DataElement("Proxy/dcterms:requires", proxy, "$.['dcterms:requires']")); + addPath(new DataElement("Proxy/dcterms:tableOfContents", proxy, "$.['dcterms:tableOfContents']")); + addPath(new DataElement("Proxy/edm:currentLocation", proxy, "$.['edm:currentLocation']")); + addPath(new DataElement("Proxy/edm:hasMet", proxy, "$.['edm:hasMet']")); + addPath(new DataElement("Proxy/edm:hasType", proxy, "$.['edm:hasType']")); + addPath(new DataElement("Proxy/edm:incorporates", proxy, "$.['edm:incorporates']")); + addPath(new DataElement("Proxy/edm:isDerivativeOf", proxy, "$.['edm:isDerivativeOf']")); + addPath(new DataElement("Proxy/edm:isRelatedTo", proxy, "$.['edm:isRelatedTo']")); + addPath(new DataElement("Proxy/edm:isRepresentationOf", proxy, "$.['edm:isRepresentationOf']")); + addPath(new DataElement("Proxy/edm:isSimilarTo", proxy, "$.['edm:isSimilarTo']")); + addPath(new DataElement("Proxy/edm:isSuccessorOf", proxy, "$.['edm:isSuccessorOf']")); + addPath(new DataElement("Proxy/edm:realizes", proxy, "$.['edm:realizes']")); + addPath(new DataElement("Proxy/edm:wasPresentAt", proxy, "$.['edm:wasPresentAt']")); - var aggregation = new JsonBranch("Aggregation", "$.['ore:Aggregation']"); + var aggregation = new DataElement("Aggregation", "$.['ore:Aggregation']"); aggregation.setCollection(true); addPath(aggregation); - var aggregationIdentifier = new JsonBranch("Aggregation/rdf:about", aggregation, "$.['@about']"); + var aggregationIdentifier = new DataElement("Aggregation/rdf:about", aggregation, "$.['@about']"); addPath(aggregationIdentifier); aggregation.setIdentifier(aggregationIdentifier); - addPath(new JsonBranch("Aggregation/edm:rights", aggregation, "$.['edm:rights']") + addPath(new DataElement("Aggregation/edm:rights", aggregation, "$.['edm:rights']") .setCategories(MANDATORY, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:provider", aggregation, "$.['edm:provider']") + addPath(new DataElement("Aggregation/edm:provider", aggregation, "$.['edm:provider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:dataProvider", aggregation, "$.['edm:dataProvider']") + addPath(new DataElement("Aggregation/edm:dataProvider", aggregation, "$.['edm:dataProvider']") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:isShownAt", aggregation, "$.['edm:isShownAt']") + addPath(new DataElement("Aggregation/edm:isShownAt", aggregation, "$.['edm:isShownAt']") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/edm:isShownBy", aggregation, "$.['edm:isShownBy']") + addPath(new DataElement("Aggregation/edm:isShownBy", aggregation, "$.['edm:isShownBy']") .setCategories(BROWSING, VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:object", aggregation, "$.['edm:object']") + addPath(new DataElement("Aggregation/edm:object", aggregation, "$.['edm:object']") .setCategories(VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:hasView", aggregation, "$.['edm:hasView']") + addPath(new DataElement("Aggregation/edm:hasView", aggregation, "$.['edm:hasView']") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/dc:rights", aggregation, "$.['dc:rights']")); - addPath(new JsonBranch("Aggregation/edm:ugc", aggregation, "$.['edm:ugc']")); - addPath(new JsonBranch("Aggregation/edm:aggregatedCHO", aggregation, "$.['edm:aggregatedCHO']")); - addPath(new JsonBranch("Aggregation/edm:intermediateProvider", aggregation, "$.['edm:intermediateProvider']")); + addPath(new DataElement("Aggregation/dc:rights", aggregation, "$.['dc:rights']")); + addPath(new DataElement("Aggregation/edm:ugc", aggregation, "$.['edm:ugc']")); + addPath(new DataElement("Aggregation/edm:aggregatedCHO", aggregation, "$.['edm:aggregatedCHO']")); + addPath(new DataElement("Aggregation/edm:intermediateProvider", aggregation, "$.['edm:intermediateProvider']")); - var place = new JsonBranch("Place", "$.['edm:Place']"); + var place = new DataElement("Place", "$.['edm:Place']"); place.setCollection(true); addPath(place); - var placeIdentifier = new JsonBranch("Place/rdf:about", place, "$.['@about']"); + var placeIdentifier = new DataElement("Place/rdf:about", place, "$.['@about']"); addPath(placeIdentifier); place.setIdentifier(placeIdentifier); - addPath(new JsonBranch("Place/wgs84:lat", place, "$.['wgs84:lat']")); - addPath(new JsonBranch("Place/wgs84:long", place, "$.['wgs84:long']")); - addPath(new JsonBranch("Place/wgs84:alt", place, "$.['wgs84:alt']")); - addPath(new JsonBranch("Place/dcterms:isPartOf", place, "$.['dcterms:isPartOf']")); - addPath(new JsonBranch("Place/wgs84_pos:lat_long", place, "$.['wgs84_pos:lat_long']")); - addPath(new JsonBranch("Place/dcterms:hasPart", place, "$.['dcterms:hasPart']")); - addPath(new JsonBranch("Place/owl:sameAs", place, "$.['owl:sameAs']")); - addPath(new JsonBranch("Place/skos:prefLabel", place, "$.['skos:prefLabel']")); - addPath(new JsonBranch("Place/skos:altLabel", place, "$.['skos:altLabel']")); - addPath(new JsonBranch("Place/skos:note", place, "$.['skos:note']")); + addPath(new DataElement("Place/wgs84:lat", place, "$.['wgs84:lat']")); + addPath(new DataElement("Place/wgs84:long", place, "$.['wgs84:long']")); + addPath(new DataElement("Place/wgs84:alt", place, "$.['wgs84:alt']")); + addPath(new DataElement("Place/dcterms:isPartOf", place, "$.['dcterms:isPartOf']")); + addPath(new DataElement("Place/wgs84_pos:lat_long", place, "$.['wgs84_pos:lat_long']")); + addPath(new DataElement("Place/dcterms:hasPart", place, "$.['dcterms:hasPart']")); + addPath(new DataElement("Place/owl:sameAs", place, "$.['owl:sameAs']")); + addPath(new DataElement("Place/skos:prefLabel", place, "$.['skos:prefLabel']")); + addPath(new DataElement("Place/skos:altLabel", place, "$.['skos:altLabel']")); + addPath(new DataElement("Place/skos:note", place, "$.['skos:note']")); - var agent = new JsonBranch("Agent", "$.['edm:Agent']"); + var agent = new DataElement("Agent", "$.['edm:Agent']"); agent.setCollection(true); addPath(agent); - var agentIdentifier = new JsonBranch("Agent/rdf:about", agent, "$.['@about']"); + var agentIdentifier = new DataElement("Agent/rdf:about", agent, "$.['@about']"); addPath(agentIdentifier); agent.setIdentifier(agentIdentifier); - addPath(new JsonBranch("Agent/edm:begin", agent, "$.['edm:begin']")); - addPath(new JsonBranch("Agent/edm:end", agent, "$.['edm:end']")); - addPath(new JsonBranch("Agent/edm:hasMet", agent, "$.['edm:hasMet']")); - addPath(new JsonBranch("Agent/edm:isRelatedTo", agent, "$.['edm:isRelatedTo']")); - addPath(new JsonBranch("Agent/owl:sameAs", agent, "$.['owl:sameAs']")); - addPath(new JsonBranch("Agent/foaf:name", agent, "$.['foaf:name']")); - addPath(new JsonBranch("Agent/dc:date", agent, "$.['dc:date']")); - addPath(new JsonBranch("Agent/dc:identifier", agent, "$.['dc:identifier']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfBirth", agent, "$.['rdaGr2:dateOfBirth']")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfBirth", agent, "$.['rdaGr2:placeOfBirth']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfDeath", agent, "$.['rdaGr2:dateOfDeath']")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfDeath", agent, "$.['rdaGr2:placeOfDeath']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfEstablishment", agent, "$.['rdaGr2:dateOfEstablishment']")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfTermination", agent, "$.['rdaGr2:dateOfTermination']")); - addPath(new JsonBranch("Agent/rdaGr2:gender", agent, "$.['rdaGr2:gender']")); - addPath(new JsonBranch("Agent/rdaGr2:professionOrOccupation", agent, "$.['rdaGr2:professionOrOccupation']")); - addPath(new JsonBranch("Agent/rdaGr2:biographicalInformation", agent, "$.['rdaGr2:biographicalInformation']")); - addPath(new JsonBranch("Agent/skos:prefLabel", agent, "$.['skos:prefLabel']")); - addPath(new JsonBranch("Agent/skos:altLabel", agent, "$.['skos:altLabel']")); - addPath(new JsonBranch("Agent/skos:note", agent, "$.['skos:note']")); + addPath(new DataElement("Agent/edm:begin", agent, "$.['edm:begin']")); + addPath(new DataElement("Agent/edm:end", agent, "$.['edm:end']")); + addPath(new DataElement("Agent/edm:hasMet", agent, "$.['edm:hasMet']")); + addPath(new DataElement("Agent/edm:isRelatedTo", agent, "$.['edm:isRelatedTo']")); + addPath(new DataElement("Agent/owl:sameAs", agent, "$.['owl:sameAs']")); + addPath(new DataElement("Agent/foaf:name", agent, "$.['foaf:name']")); + addPath(new DataElement("Agent/dc:date", agent, "$.['dc:date']")); + addPath(new DataElement("Agent/dc:identifier", agent, "$.['dc:identifier']")); + addPath(new DataElement("Agent/rdaGr2:dateOfBirth", agent, "$.['rdaGr2:dateOfBirth']")); + addPath(new DataElement("Agent/rdaGr2:placeOfBirth", agent, "$.['rdaGr2:placeOfBirth']")); + addPath(new DataElement("Agent/rdaGr2:dateOfDeath", agent, "$.['rdaGr2:dateOfDeath']")); + addPath(new DataElement("Agent/rdaGr2:placeOfDeath", agent, "$.['rdaGr2:placeOfDeath']")); + addPath(new DataElement("Agent/rdaGr2:dateOfEstablishment", agent, "$.['rdaGr2:dateOfEstablishment']")); + addPath(new DataElement("Agent/rdaGr2:dateOfTermination", agent, "$.['rdaGr2:dateOfTermination']")); + addPath(new DataElement("Agent/rdaGr2:gender", agent, "$.['rdaGr2:gender']")); + addPath(new DataElement("Agent/rdaGr2:professionOrOccupation", agent, "$.['rdaGr2:professionOrOccupation']")); + addPath(new DataElement("Agent/rdaGr2:biographicalInformation", agent, "$.['rdaGr2:biographicalInformation']")); + addPath(new DataElement("Agent/skos:prefLabel", agent, "$.['skos:prefLabel']")); + addPath(new DataElement("Agent/skos:altLabel", agent, "$.['skos:altLabel']")); + addPath(new DataElement("Agent/skos:note", agent, "$.['skos:note']")); - var timespan = new JsonBranch("Timespan", "$.['edm:TimeSpan']"); + var timespan = new DataElement("Timespan", "$.['edm:TimeSpan']"); timespan.setCollection(true); addPath(timespan); - var timespanIdentifier = new JsonBranch("Timespan/rdf:about", timespan, "$.['@about']"); + var timespanIdentifier = new DataElement("Timespan/rdf:about", timespan, "$.['@about']"); addPath(timespanIdentifier); timespan.setIdentifier(timespanIdentifier); - addPath(new JsonBranch("Timespan/edm:begin", timespan, "$.['edm:begin']")); - addPath(new JsonBranch("Timespan/edm:end", timespan, "$.['edm:end']")); - addPath(new JsonBranch("Timespan/dcterms:isPartOf", timespan, "$.['dcterms:isPartOf']")); - addPath(new JsonBranch("Timespan/dcterms:hasPart", timespan, "$.['dcterms:hasPart']")); - addPath(new JsonBranch("Timespan/edm:isNextInSequence", timespan, "$.['edm:isNextInSequence']")); - addPath(new JsonBranch("Timespan/owl:sameAs", timespan, "$.['owl:sameAs']")); - addPath(new JsonBranch("Timespan/skos:prefLabel", timespan, "$.['skos:prefLabel']")); - addPath(new JsonBranch("Timespan/skos:altLabel", timespan, "$.['skos:altLabel']")); - addPath(new JsonBranch("Timespan/skos:note", timespan, "$.['skos:note']")); + addPath(new DataElement("Timespan/edm:begin", timespan, "$.['edm:begin']")); + addPath(new DataElement("Timespan/edm:end", timespan, "$.['edm:end']")); + addPath(new DataElement("Timespan/dcterms:isPartOf", timespan, "$.['dcterms:isPartOf']")); + addPath(new DataElement("Timespan/dcterms:hasPart", timespan, "$.['dcterms:hasPart']")); + addPath(new DataElement("Timespan/edm:isNextInSequence", timespan, "$.['edm:isNextInSequence']")); + addPath(new DataElement("Timespan/owl:sameAs", timespan, "$.['owl:sameAs']")); + addPath(new DataElement("Timespan/skos:prefLabel", timespan, "$.['skos:prefLabel']")); + addPath(new DataElement("Timespan/skos:altLabel", timespan, "$.['skos:altLabel']")); + addPath(new DataElement("Timespan/skos:note", timespan, "$.['skos:note']")); - var concept = new JsonBranch("Concept", "$.['skos:Concept']"); + var concept = new DataElement("Concept", "$.['skos:Concept']"); concept.setCollection(true); addPath(concept); - var conceptIdentifier = new JsonBranch("Concept/rdf:about", concept, "$.['@about']"); + var conceptIdentifier = new DataElement("Concept/rdf:about", concept, "$.['@about']"); addPath(conceptIdentifier); concept.setIdentifier(conceptIdentifier); - addPath(new JsonBranch("Concept/skos:broader", concept, "$.['skos:broader']")); - addPath(new JsonBranch("Concept/skos:narrower", concept, "$.['skos:narrower']")); - addPath(new JsonBranch("Concept/skos:related", concept, "$.['skos:related']")); - addPath(new JsonBranch("Concept/skos:broadMatch", concept, "$.['skos:broadMatch']")); - addPath(new JsonBranch("Concept/skos:narrowMatch", concept, "$.['skos:narrowMatch']")); - addPath(new JsonBranch("Concept/skos:relatedMatch", concept, "$.['skos:relatedMatch']")); - addPath(new JsonBranch("Concept/skos:exactMatch", concept, "$.['skos:exactMatch']")); - addPath(new JsonBranch("Concept/skos:closeMatch", concept, "$.['skos:closeMatch']")); - addPath(new JsonBranch("Concept/skos:notation", concept, "$.['skos:notation']")); - addPath(new JsonBranch("Concept/skos:inScheme", concept, "$.['skos:inScheme']")); - addPath(new JsonBranch("Concept/skos:prefLabel", concept, "$.['skos:prefLabel']")); - addPath(new JsonBranch("Concept/skos:altLabel", concept, "$.['skos:altLabel']")); - addPath(new JsonBranch("Concept/skos:note", concept, "$.['skos:note']")); + addPath(new DataElement("Concept/skos:broader", concept, "$.['skos:broader']")); + addPath(new DataElement("Concept/skos:narrower", concept, "$.['skos:narrower']")); + addPath(new DataElement("Concept/skos:related", concept, "$.['skos:related']")); + addPath(new DataElement("Concept/skos:broadMatch", concept, "$.['skos:broadMatch']")); + addPath(new DataElement("Concept/skos:narrowMatch", concept, "$.['skos:narrowMatch']")); + addPath(new DataElement("Concept/skos:relatedMatch", concept, "$.['skos:relatedMatch']")); + addPath(new DataElement("Concept/skos:exactMatch", concept, "$.['skos:exactMatch']")); + addPath(new DataElement("Concept/skos:closeMatch", concept, "$.['skos:closeMatch']")); + addPath(new DataElement("Concept/skos:notation", concept, "$.['skos:notation']")); + addPath(new DataElement("Concept/skos:inScheme", concept, "$.['skos:inScheme']")); + addPath(new DataElement("Concept/skos:prefLabel", concept, "$.['skos:prefLabel']")); + addPath(new DataElement("Concept/skos:altLabel", concept, "$.['skos:altLabel']")); + addPath(new DataElement("Concept/skos:note", concept, "$.['skos:note']")); - var europeanaAggregation = new JsonBranch("EuropeanaAggregation", "$.['edm:EuropeanaAggregation']") + var europeanaAggregation = new DataElement("EuropeanaAggregation", "$.['edm:EuropeanaAggregation']") .setActive(false); europeanaAggregation.setCollection(true); addPath(europeanaAggregation); - addPath(new JsonBranch("EuropeanaAggregation/edm:country", europeanaAggregation, "$.['edm:country']") + addPath(new DataElement("EuropeanaAggregation/edm:country", europeanaAggregation, "$.['edm:country']") .setActive(false)); - addPath(new JsonBranch("EuropeanaAggregation/edm:language", europeanaAggregation, "$.['edm:language']") + addPath(new DataElement("EuropeanaAggregation/edm:language", europeanaAggregation, "$.['edm:language']") .setActive(false)); // extractableFields.put("country", "$.['edm:EuropeanaAggregation'][0]['edm:country'][0]"); @@ -311,7 +311,7 @@ public Format getFormat() { } @Override - public List getCollectionPaths() { + public List getCollectionPaths() { return new ArrayList(collectionPaths.values()); } } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhXmlSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhXmlSchema.java index 2d5d31cc..79bca89d 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhXmlSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmOaiPmhXmlSchema.java @@ -1,8 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; import de.gwdg.metadataqa.api.json.FieldGroup; -import de.gwdg.metadataqa.api.json.JsonBranch; -import de.gwdg.metadataqa.api.model.Category; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.Format; import java.io.Serializable; @@ -38,234 +37,234 @@ private void initialize() { titlePath = "//ore:Proxy[edm:europeanaProxy/text() = 'false']/dc:title"; descriptionPath = "//ore:Proxy[edm:europeanaProxy/text() = 'false']/dc:description"; - var providedCHO = new JsonBranch("ProvidedCHO", "//edm:ProvidedCHO[1]"); + var providedCHO = new DataElement("ProvidedCHO", "//edm:ProvidedCHO[1]"); providedCHO.setCollection(true); addPath(providedCHO); - var providedCHOIdentifier = new JsonBranch("ProvidedCHO/rdf:about", + var providedCHOIdentifier = new DataElement("ProvidedCHO/rdf:about", providedCHO, "@rdf:about") .setCategories(MANDATORY); providedCHO.setIdentifier(providedCHOIdentifier); addPath(providedCHOIdentifier); - var proxy = new JsonBranch( + var proxy = new DataElement( "Proxy", "//ore:Proxy[edm:europeanaProxy/text() = 'false']" ); proxy.setCollection(true); addPath(proxy); - var proxyIdentifier = new JsonBranch("Proxy/rdf:about", proxy, "@rdf:about"); + var proxyIdentifier = new DataElement("Proxy/rdf:about", proxy, "@rdf:about"); proxy.setIdentifier(proxyIdentifier); addPath(proxyIdentifier); - addPath(new JsonBranch("Proxy/dc:title", proxy, "dc:title") + addPath(new DataElement("Proxy/dc:title", proxy, "dc:title") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_title_txt")); - addPath(new JsonBranch("Proxy/dcterms:alternative", proxy, "dcterms:alternative") + addPath(new DataElement("Proxy/dcterms:alternative", proxy, "dcterms:alternative") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dcterms_alternative_txt")); - addPath(new JsonBranch("Proxy/dc:description", proxy, "dc:description") + addPath(new DataElement("Proxy/dc:description", proxy, "dc:description") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, MULTILINGUALITY) .setIndexField("dc_description_txt")); - addPath(new JsonBranch("Proxy/dc:creator", proxy, "dc:creator") + addPath(new DataElement("Proxy/dc:creator", proxy, "dc:creator") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:publisher", proxy, "dc:publisher") + addPath(new DataElement("Proxy/dc:publisher", proxy, "dc:publisher") .setCategories(SEARCHABILITY, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:contributor", proxy, "dc:contributor") + addPath(new DataElement("Proxy/dc:contributor", proxy, "dc:contributor") .setCategories(SEARCHABILITY)); - addPath(new JsonBranch("Proxy/dc:type", proxy, "dc:type") + addPath(new DataElement("Proxy/dc:type", proxy, "dc:type") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, IDENTIFICATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:identifier", proxy, "dc:identifier") + addPath(new DataElement("Proxy/dc:identifier", proxy, "dc:identifier") .setCategories(IDENTIFICATION)); - addPath(new JsonBranch("Proxy/dc:language", proxy, "dc:language") + addPath(new DataElement("Proxy/dc:language", proxy, "dc:language") .setCategories(DESCRIPTIVENESS, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:coverage", proxy, "dc:coverage") + addPath(new DataElement("Proxy/dc:coverage", proxy, "dc:coverage") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:temporal", proxy, "dcterms:temporal") + addPath(new DataElement("Proxy/dcterms:temporal", proxy, "dcterms:temporal") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:spatial", proxy, "dcterms:spatial") + addPath(new DataElement("Proxy/dcterms:spatial", proxy, "dcterms:spatial") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:subject", proxy, "dc:subject") + addPath(new DataElement("Proxy/dc:subject", proxy, "dc:subject") .setCategories(DESCRIPTIVENESS, SEARCHABILITY, CONTEXTUALIZATION, MULTILINGUALITY)); - addPath(new JsonBranch("Proxy/dc:date", proxy, "dc:date") + addPath(new DataElement("Proxy/dc:date", proxy, "dc:date") .setCategories(IDENTIFICATION, BROWSING, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:created", proxy, "dcterms:created") + addPath(new DataElement("Proxy/dcterms:created", proxy, "dcterms:created") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:issued", proxy, "dcterms:issued") + addPath(new DataElement("Proxy/dcterms:issued", proxy, "dcterms:issued") .setCategories(IDENTIFICATION, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:extent", proxy, "dcterms:extent") + addPath(new DataElement("Proxy/dcterms:extent", proxy, "dcterms:extent") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:medium", proxy, "dcterms:medium") + addPath(new DataElement("Proxy/dcterms:medium", proxy, "dcterms:medium") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dcterms:provenance", proxy, "dcterms:provenance") + addPath(new DataElement("Proxy/dcterms:provenance", proxy, "dcterms:provenance") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dcterms:hasPart", proxy, "dcterms:hasPart") + addPath(new DataElement("Proxy/dcterms:hasPart", proxy, "dcterms:hasPart") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dcterms:isPartOf", proxy, "dcterms:isPartOf") + addPath(new DataElement("Proxy/dcterms:isPartOf", proxy, "dcterms:isPartOf") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/dc:format", proxy, "dc:format") + addPath(new DataElement("Proxy/dc:format", proxy, "dc:format") .setCategories(DESCRIPTIVENESS, REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:source", proxy, "dc:source") + addPath(new DataElement("Proxy/dc:source", proxy, "dc:source") .setCategories(DESCRIPTIVENESS)); - addPath(new JsonBranch("Proxy/dc:rights", proxy, "dc:rights") + addPath(new DataElement("Proxy/dc:rights", proxy, "dc:rights") .setCategories(REUSABILITY)); - addPath(new JsonBranch("Proxy/dc:relation", proxy, "dc:relation") + addPath(new DataElement("Proxy/dc:relation", proxy, "dc:relation") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:isNextInSequence", proxy, "edm:isNextInSequence") + addPath(new DataElement("Proxy/edm:isNextInSequence", proxy, "edm:isNextInSequence") .setCategories(SEARCHABILITY, CONTEXTUALIZATION, BROWSING)); - addPath(new JsonBranch("Proxy/edm:type", proxy, "edm:type") + addPath(new DataElement("Proxy/edm:type", proxy, "edm:type") .setCategories(SEARCHABILITY, BROWSING)); - addPath(new JsonBranch("Proxy/edm:europeanaProxy", proxy, "edm:europeanaProxy")); - addPath(new JsonBranch("Proxy/edm:year", proxy, "edm:year")); - addPath(new JsonBranch("Proxy/edm:userTag", proxy, "edm:userTag")); - addPath(new JsonBranch("Proxy/ore:proxyIn", proxy, "ore:proxyIn")); - addPath(new JsonBranch("Proxy/ore:proxyFor", proxy, "ore:proxyFor")); - addPath(new JsonBranch("Proxy/dcterms:conformsTo", proxy, "dcterms:conformsTo")); - addPath(new JsonBranch("Proxy/dcterms:hasFormat", proxy, "dcterms:hasFormat")); - addPath(new JsonBranch("Proxy/dcterms:hasVersion", proxy, "dcterms:hasVersion")); - addPath(new JsonBranch("Proxy/dcterms:isFormatOf", proxy, "dcterms:isFormatOf")); - addPath(new JsonBranch("Proxy/dcterms:isReferencedBy", proxy, "dcterms:isReferencedBy")); - addPath(new JsonBranch("Proxy/dcterms:isReplacedBy", proxy, "dcterms:isReplacedBy")); - addPath(new JsonBranch("Proxy/dcterms:isRequiredBy", proxy, "dcterms:isRequiredBy")); - addPath(new JsonBranch("Proxy/dcterms:isVersionOf", proxy, "dcterms:isVersionOf")); - addPath(new JsonBranch("Proxy/dcterms:references", proxy, "dcterms:references")); - addPath(new JsonBranch("Proxy/dcterms:replaces", proxy, "dcterms:replaces")); - addPath(new JsonBranch("Proxy/dcterms:requires", proxy, "dcterms:requires")); - addPath(new JsonBranch("Proxy/dcterms:tableOfContents", proxy, "dcterms:tableOfContents")); - addPath(new JsonBranch("Proxy/edm:currentLocation", proxy, "edm:currentLocation")); - addPath(new JsonBranch("Proxy/edm:hasMet", proxy, "edm:hasMet")); - addPath(new JsonBranch("Proxy/edm:hasType", proxy, "edm:hasType")); - addPath(new JsonBranch("Proxy/edm:incorporates", proxy, "edm:incorporates")); - addPath(new JsonBranch("Proxy/edm:isDerivativeOf", proxy, "edm:isDerivativeOf")); - addPath(new JsonBranch("Proxy/edm:isRelatedTo", proxy, "edm:isRelatedTo")); - addPath(new JsonBranch("Proxy/edm:isRepresentationOf", proxy, "edm:isRepresentationOf")); - addPath(new JsonBranch("Proxy/edm:isSimilarTo", proxy, "edm:isSimilarTo")); - addPath(new JsonBranch("Proxy/edm:isSuccessorOf", proxy, "edm:isSuccessorOf")); - addPath(new JsonBranch("Proxy/edm:realizes", proxy, "edm:realizes")); - addPath(new JsonBranch("Proxy/edm:wasPresentAt", proxy, "edm:wasPresentAt")); + addPath(new DataElement("Proxy/edm:europeanaProxy", proxy, "edm:europeanaProxy")); + addPath(new DataElement("Proxy/edm:year", proxy, "edm:year")); + addPath(new DataElement("Proxy/edm:userTag", proxy, "edm:userTag")); + addPath(new DataElement("Proxy/ore:proxyIn", proxy, "ore:proxyIn")); + addPath(new DataElement("Proxy/ore:proxyFor", proxy, "ore:proxyFor")); + addPath(new DataElement("Proxy/dcterms:conformsTo", proxy, "dcterms:conformsTo")); + addPath(new DataElement("Proxy/dcterms:hasFormat", proxy, "dcterms:hasFormat")); + addPath(new DataElement("Proxy/dcterms:hasVersion", proxy, "dcterms:hasVersion")); + addPath(new DataElement("Proxy/dcterms:isFormatOf", proxy, "dcterms:isFormatOf")); + addPath(new DataElement("Proxy/dcterms:isReferencedBy", proxy, "dcterms:isReferencedBy")); + addPath(new DataElement("Proxy/dcterms:isReplacedBy", proxy, "dcterms:isReplacedBy")); + addPath(new DataElement("Proxy/dcterms:isRequiredBy", proxy, "dcterms:isRequiredBy")); + addPath(new DataElement("Proxy/dcterms:isVersionOf", proxy, "dcterms:isVersionOf")); + addPath(new DataElement("Proxy/dcterms:references", proxy, "dcterms:references")); + addPath(new DataElement("Proxy/dcterms:replaces", proxy, "dcterms:replaces")); + addPath(new DataElement("Proxy/dcterms:requires", proxy, "dcterms:requires")); + addPath(new DataElement("Proxy/dcterms:tableOfContents", proxy, "dcterms:tableOfContents")); + addPath(new DataElement("Proxy/edm:currentLocation", proxy, "edm:currentLocation")); + addPath(new DataElement("Proxy/edm:hasMet", proxy, "edm:hasMet")); + addPath(new DataElement("Proxy/edm:hasType", proxy, "edm:hasType")); + addPath(new DataElement("Proxy/edm:incorporates", proxy, "edm:incorporates")); + addPath(new DataElement("Proxy/edm:isDerivativeOf", proxy, "edm:isDerivativeOf")); + addPath(new DataElement("Proxy/edm:isRelatedTo", proxy, "edm:isRelatedTo")); + addPath(new DataElement("Proxy/edm:isRepresentationOf", proxy, "edm:isRepresentationOf")); + addPath(new DataElement("Proxy/edm:isSimilarTo", proxy, "edm:isSimilarTo")); + addPath(new DataElement("Proxy/edm:isSuccessorOf", proxy, "edm:isSuccessorOf")); + addPath(new DataElement("Proxy/edm:realizes", proxy, "edm:realizes")); + addPath(new DataElement("Proxy/edm:wasPresentAt", proxy, "edm:wasPresentAt")); - var aggregation = new JsonBranch("Aggregation", "//ore:Aggregation"); + var aggregation = new DataElement("Aggregation", "//ore:Aggregation"); aggregation.setCollection(true); addPath(aggregation); - var aggregationIdentifier = new JsonBranch( + var aggregationIdentifier = new DataElement( "Aggregation/rdf:about", aggregation, "@rdf:about"); addPath(aggregationIdentifier); aggregation.setIdentifier(aggregationIdentifier); - addPath(new JsonBranch("Aggregation/edm:rights", aggregation, "edm:rights") + addPath(new DataElement("Aggregation/edm:rights", aggregation, "edm:rights") .setCategories(MANDATORY, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:provider", aggregation, "edm:provider") + addPath(new DataElement("Aggregation/edm:provider", aggregation, "edm:provider") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:dataProvider", aggregation, "edm:dataProvider") + addPath(new DataElement("Aggregation/edm:dataProvider", aggregation, "edm:dataProvider") .setCategories(MANDATORY, SEARCHABILITY, IDENTIFICATION)); - addPath(new JsonBranch("Aggregation/edm:isShownAt", aggregation, "edm:isShownAt") + addPath(new DataElement("Aggregation/edm:isShownAt", aggregation, "edm:isShownAt") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/edm:isShownBy", aggregation, "edm:isShownBy") + addPath(new DataElement("Aggregation/edm:isShownBy", aggregation, "edm:isShownBy") .setCategories(BROWSING, VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:object", aggregation, "edm:object") + addPath(new DataElement("Aggregation/edm:object", aggregation, "edm:object") .setCategories(VIEWING, REUSABILITY)); - addPath(new JsonBranch("Aggregation/edm:hasView", aggregation, "edm:hasView") + addPath(new DataElement("Aggregation/edm:hasView", aggregation, "edm:hasView") .setCategories(BROWSING, VIEWING)); - addPath(new JsonBranch("Aggregation/dc:rights", aggregation, "dc:rights")); - addPath(new JsonBranch("Aggregation/edm:ugc", aggregation, "edm:ugc")); - addPath(new JsonBranch("Aggregation/edm:aggregatedCHO", aggregation, "edm:aggregatedCHO")); - addPath(new JsonBranch("Aggregation/edm:intermediateProvider", aggregation, "edm:intermediateProvider")); + addPath(new DataElement("Aggregation/dc:rights", aggregation, "dc:rights")); + addPath(new DataElement("Aggregation/edm:ugc", aggregation, "edm:ugc")); + addPath(new DataElement("Aggregation/edm:aggregatedCHO", aggregation, "edm:aggregatedCHO")); + addPath(new DataElement("Aggregation/edm:intermediateProvider", aggregation, "edm:intermediateProvider")); - var place = new JsonBranch("Place", "//edm:Place"); + var place = new DataElement("Place", "//edm:Place"); place.setCollection(true); addPath(place); - var placeIdentifier = new JsonBranch("Place/rdf:about", place, "@rdf:about"); + var placeIdentifier = new DataElement("Place/rdf:about", place, "@rdf:about"); addPath(placeIdentifier); place.setIdentifier(placeIdentifier); - addPath(new JsonBranch("Place/wgs84:lat", place, "wgs84:lat")); - addPath(new JsonBranch("Place/wgs84:long", place, "wgs84:long")); - addPath(new JsonBranch("Place/wgs84:alt", place, "wgs84:alt")); - addPath(new JsonBranch("Place/dcterms:isPartOf", place, "dcterms:isPartOf")); - addPath(new JsonBranch("Place/wgs84_pos:lat_long", place, "wgs84_pos:lat_long")); - addPath(new JsonBranch("Place/dcterms:hasPart", place, "dcterms:hasPart")); - addPath(new JsonBranch("Place/owl:sameAs", place, "owl:sameAs")); - addPath(new JsonBranch("Place/skos:prefLabel", place, "skos:prefLabel")); - addPath(new JsonBranch("Place/skos:altLabel", place, "skos:altLabel")); - addPath(new JsonBranch("Place/skos:note", place, "skos:note")); + addPath(new DataElement("Place/wgs84:lat", place, "wgs84:lat")); + addPath(new DataElement("Place/wgs84:long", place, "wgs84:long")); + addPath(new DataElement("Place/wgs84:alt", place, "wgs84:alt")); + addPath(new DataElement("Place/dcterms:isPartOf", place, "dcterms:isPartOf")); + addPath(new DataElement("Place/wgs84_pos:lat_long", place, "wgs84_pos:lat_long")); + addPath(new DataElement("Place/dcterms:hasPart", place, "dcterms:hasPart")); + addPath(new DataElement("Place/owl:sameAs", place, "owl:sameAs")); + addPath(new DataElement("Place/skos:prefLabel", place, "skos:prefLabel")); + addPath(new DataElement("Place/skos:altLabel", place, "skos:altLabel")); + addPath(new DataElement("Place/skos:note", place, "skos:note")); - var agent = new JsonBranch("Agent", "//edm:Agent"); + var agent = new DataElement("Agent", "//edm:Agent"); agent.setCollection(true); addPath(agent); - var agentIdentifier = new JsonBranch("Agent/rdf:about", agent, "@rdf:about"); + var agentIdentifier = new DataElement("Agent/rdf:about", agent, "@rdf:about"); addPath(agentIdentifier); agent.setIdentifier(agentIdentifier); - addPath(new JsonBranch("Agent/edm:begin", agent, "edm:begin")); - addPath(new JsonBranch("Agent/edm:end", agent, "edm:end")); - addPath(new JsonBranch("Agent/edm:hasMet", agent, "edm:hasMet")); - addPath(new JsonBranch("Agent/edm:isRelatedTo", agent, "edm:isRelatedTo")); - addPath(new JsonBranch("Agent/owl:sameAs", agent, "owl:sameAs")); - addPath(new JsonBranch("Agent/foaf:name", agent, "foaf:name")); - addPath(new JsonBranch("Agent/dc:date", agent, "dc:date")); - addPath(new JsonBranch("Agent/dc:identifier", agent, "dc:identifier")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfBirth", agent, "rdaGr2:dateOfBirth")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfBirth", agent, "rdaGr2:placeOfBirth")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfDeath", agent, "rdaGr2:dateOfDeath")); - addPath(new JsonBranch("Agent/rdaGr2:placeOfDeath", agent, "rdaGr2:placeOfDeath")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfEstablishment", agent, "rdaGr2:dateOfEstablishment")); - addPath(new JsonBranch("Agent/rdaGr2:dateOfTermination", agent, "rdaGr2:dateOfTermination")); - addPath(new JsonBranch("Agent/rdaGr2:gender", agent, "rdaGr2:gender")); - addPath(new JsonBranch("Agent/rdaGr2:professionOrOccupation", agent, "rdaGr2:professionOrOccupation")); - addPath(new JsonBranch("Agent/rdaGr2:biographicalInformation", agent, "rdaGr2:biographicalInformation")); - addPath(new JsonBranch("Agent/skos:prefLabel", agent, "skos:prefLabel")); - addPath(new JsonBranch("Agent/skos:altLabel", agent, "skos:altLabel")); - addPath(new JsonBranch("Agent/skos:note", agent, "skos:note")); + addPath(new DataElement("Agent/edm:begin", agent, "edm:begin")); + addPath(new DataElement("Agent/edm:end", agent, "edm:end")); + addPath(new DataElement("Agent/edm:hasMet", agent, "edm:hasMet")); + addPath(new DataElement("Agent/edm:isRelatedTo", agent, "edm:isRelatedTo")); + addPath(new DataElement("Agent/owl:sameAs", agent, "owl:sameAs")); + addPath(new DataElement("Agent/foaf:name", agent, "foaf:name")); + addPath(new DataElement("Agent/dc:date", agent, "dc:date")); + addPath(new DataElement("Agent/dc:identifier", agent, "dc:identifier")); + addPath(new DataElement("Agent/rdaGr2:dateOfBirth", agent, "rdaGr2:dateOfBirth")); + addPath(new DataElement("Agent/rdaGr2:placeOfBirth", agent, "rdaGr2:placeOfBirth")); + addPath(new DataElement("Agent/rdaGr2:dateOfDeath", agent, "rdaGr2:dateOfDeath")); + addPath(new DataElement("Agent/rdaGr2:placeOfDeath", agent, "rdaGr2:placeOfDeath")); + addPath(new DataElement("Agent/rdaGr2:dateOfEstablishment", agent, "rdaGr2:dateOfEstablishment")); + addPath(new DataElement("Agent/rdaGr2:dateOfTermination", agent, "rdaGr2:dateOfTermination")); + addPath(new DataElement("Agent/rdaGr2:gender", agent, "rdaGr2:gender")); + addPath(new DataElement("Agent/rdaGr2:professionOrOccupation", agent, "rdaGr2:professionOrOccupation")); + addPath(new DataElement("Agent/rdaGr2:biographicalInformation", agent, "rdaGr2:biographicalInformation")); + addPath(new DataElement("Agent/skos:prefLabel", agent, "skos:prefLabel")); + addPath(new DataElement("Agent/skos:altLabel", agent, "skos:altLabel")); + addPath(new DataElement("Agent/skos:note", agent, "skos:note")); - var timespan = new JsonBranch("Timespan", "//edm:TimeSpan"); + var timespan = new DataElement("Timespan", "//edm:TimeSpan"); timespan.setCollection(true); addPath(timespan); - var timespanIdentifier = new JsonBranch( + var timespanIdentifier = new DataElement( "Timespan/rdf:about", timespan, "@rdf:about"); addPath(timespanIdentifier); timespan.setIdentifier(timespanIdentifier); - addPath(new JsonBranch("Timespan/edm:begin", timespan, "edm:begin")); - addPath(new JsonBranch("Timespan/edm:end", timespan, "edm:end")); - addPath(new JsonBranch("Timespan/dcterms:isPartOf", timespan, "dcterms:isPartOf")); - addPath(new JsonBranch("Timespan/dcterms:hasPart", timespan, "dcterms:hasPart")); - addPath(new JsonBranch("Timespan/edm:isNextInSequence", timespan, "edm:isNextInSequence")); - addPath(new JsonBranch("Timespan/owl:sameAs", timespan, "owl:sameAs")); - addPath(new JsonBranch("Timespan/skos:prefLabel", timespan, "skos:prefLabel")); - addPath(new JsonBranch("Timespan/skos:altLabel", timespan, "skos:altLabel")); - addPath(new JsonBranch("Timespan/skos:note", timespan, "skos:note")); + addPath(new DataElement("Timespan/edm:begin", timespan, "edm:begin")); + addPath(new DataElement("Timespan/edm:end", timespan, "edm:end")); + addPath(new DataElement("Timespan/dcterms:isPartOf", timespan, "dcterms:isPartOf")); + addPath(new DataElement("Timespan/dcterms:hasPart", timespan, "dcterms:hasPart")); + addPath(new DataElement("Timespan/edm:isNextInSequence", timespan, "edm:isNextInSequence")); + addPath(new DataElement("Timespan/owl:sameAs", timespan, "owl:sameAs")); + addPath(new DataElement("Timespan/skos:prefLabel", timespan, "skos:prefLabel")); + addPath(new DataElement("Timespan/skos:altLabel", timespan, "skos:altLabel")); + addPath(new DataElement("Timespan/skos:note", timespan, "skos:note")); - var concept = new JsonBranch("Concept", "//skos:Concept"); + var concept = new DataElement("Concept", "//skos:Concept"); concept.setCollection(true); addPath(concept); - var conceptIdentifier = new JsonBranch( + var conceptIdentifier = new DataElement( "Concept/rdf:about", concept, "@rdf:about"); addPath(conceptIdentifier); concept.setIdentifier(conceptIdentifier); - addPath(new JsonBranch("Concept/skos:broader", concept, "skos:broader")); - addPath(new JsonBranch("Concept/skos:narrower", concept, "skos:narrower")); - addPath(new JsonBranch("Concept/skos:related", concept, "skos:related")); - addPath(new JsonBranch("Concept/skos:broadMatch", concept, "skos:broadMatch")); - addPath(new JsonBranch("Concept/skos:narrowMatch", concept, "skos:narrowMatch")); - addPath(new JsonBranch("Concept/skos:relatedMatch", concept, "skos:relatedMatch")); - addPath(new JsonBranch("Concept/skos:exactMatch", concept, "skos:exactMatch")); - addPath(new JsonBranch("Concept/skos:closeMatch", concept, "skos:closeMatch")); - addPath(new JsonBranch("Concept/skos:notation", concept, "skos:notation")); - addPath(new JsonBranch("Concept/skos:inScheme", concept, "skos:inScheme")); - addPath(new JsonBranch("Concept/skos:prefLabel", concept, "skos:prefLabel")); - addPath(new JsonBranch("Concept/skos:altLabel", concept, "skos:altLabel")); - addPath(new JsonBranch("Concept/skos:note", concept, "skos:note")); + addPath(new DataElement("Concept/skos:broader", concept, "skos:broader")); + addPath(new DataElement("Concept/skos:narrower", concept, "skos:narrower")); + addPath(new DataElement("Concept/skos:related", concept, "skos:related")); + addPath(new DataElement("Concept/skos:broadMatch", concept, "skos:broadMatch")); + addPath(new DataElement("Concept/skos:narrowMatch", concept, "skos:narrowMatch")); + addPath(new DataElement("Concept/skos:relatedMatch", concept, "skos:relatedMatch")); + addPath(new DataElement("Concept/skos:exactMatch", concept, "skos:exactMatch")); + addPath(new DataElement("Concept/skos:closeMatch", concept, "skos:closeMatch")); + addPath(new DataElement("Concept/skos:notation", concept, "skos:notation")); + addPath(new DataElement("Concept/skos:inScheme", concept, "skos:inScheme")); + addPath(new DataElement("Concept/skos:prefLabel", concept, "skos:prefLabel")); + addPath(new DataElement("Concept/skos:altLabel", concept, "skos:altLabel")); + addPath(new DataElement("Concept/skos:note", concept, "skos:note")); - var europeanaAggregation = new JsonBranch( + var europeanaAggregation = new DataElement( "EuropeanaAggregation", "//edm:EuropeanaAggregation" ) .setActive(false); europeanaAggregation.setCollection(true); addPath(europeanaAggregation); - addPath(new JsonBranch("EuropeanaAggregation/edm:country", + addPath(new DataElement("EuropeanaAggregation/edm:country", europeanaAggregation, "edm:country") .setActive(false)); - addPath(new JsonBranch("EuropeanaAggregation/edm:language", + addPath(new DataElement("EuropeanaAggregation/edm:language", europeanaAggregation, "edm:language") .setActive(false)); @@ -317,7 +316,7 @@ public Format getFormat() { } @Override - public List getCollectionPaths() { + public List getCollectionPaths() { return new ArrayList(collectionPaths.values()); } } diff --git a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmSchema.java b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmSchema.java index c690bb62..9b4c55d0 100644 --- a/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmSchema.java +++ b/src/main/java/de/gwdg/metadataqa/api/schema/edm/EdmSchema.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.schema.edm; 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 de.gwdg.metadataqa.api.schema.ProblemCatalogSchema; @@ -21,11 +21,11 @@ */ public abstract class EdmSchema implements Schema, ProblemCatalogSchema { - protected final Map paths = new LinkedHashMap<>(); - protected final Map collectionPaths = new LinkedHashMap<>(); + protected final Map paths = new LinkedHashMap<>(); + protected final Map collectionPaths = new LinkedHashMap<>(); protected final List fieldGroups = new ArrayList<>(); protected final List noLanguageFields = new ArrayList<>(); - protected List indexFields; + protected List indexFields; protected final List emptyStrings = new ArrayList<>(); protected String longSubjectPath; protected String titlePath; @@ -36,24 +36,24 @@ public abstract class EdmSchema implements Schema, ProblemCatalogSchema { protected Map extractableFields = new LinkedHashMap<>(); - protected void addPath(JsonBranch branch) { + protected void addPath(DataElement branch) { paths.put(branch.getLabel(), branch); if (branch.isCollection()) collectionPaths.put(branch.getLabel(), branch); } @Override - public List getPaths() { + public List getPaths() { return new ArrayList(paths.values()); } @Override - public List getRootChildrenPaths() { + public List getRootChildrenPaths() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. } @Override - public JsonBranch getPathByLabel(String label) { + public DataElement getPathByLabel(String label) { return paths.get(label); } @@ -84,12 +84,12 @@ 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); + for (DataElement dataElement : getPaths()) + if (StringUtils.isNotBlank(dataElement.getIndexField())) + indexFields.add(dataElement); } return indexFields; @@ -126,12 +126,12 @@ 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 - public JsonBranch getRecordId() { + public DataElement getRecordId() { return null; } } diff --git a/src/main/java/de/gwdg/metadataqa/api/uniqueness/TfIdfExtractor.java b/src/main/java/de/gwdg/metadataqa/api/uniqueness/TfIdfExtractor.java index 35f3b039..5e034070 100644 --- a/src/main/java/de/gwdg/metadataqa/api/uniqueness/TfIdfExtractor.java +++ b/src/main/java/de/gwdg/metadataqa/api/uniqueness/TfIdfExtractor.java @@ -8,9 +8,8 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; -import java.util.Set; -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.util.Converter; @@ -63,11 +62,11 @@ public FieldCounter extract(String jsonString, String recordId, boolean var path = String.format("$.termVectors.['%s']", recordId); Map value = (LinkedHashMap) JsonPath.read(document, path); - for (JsonBranch jsonBranch : schema.getIndexFields()) { + for (DataElement dataElement : schema.getIndexFields()) { if (doCollectTerms) { - termsCollection.put(jsonBranch.getJsonPath(), new ArrayList<>()); + termsCollection.put(dataElement.getPath(), new ArrayList<>()); } - String solrField = jsonBranch.getIndexField(); + String solrField = dataElement.getIndexField(); double sum = 0; double count = 0; if (value.containsKey(solrField)) { @@ -79,15 +78,15 @@ public FieldCounter extract(String jsonString, String recordId, boolean if (doCollectTerms) { int tf = Converter.asInteger(termInfo.get("tf")); int df = Converter.asInteger(termInfo.get("df")); - termsCollection.get(jsonBranch.getLabel()).add(new TfIdf(term, tf, df, tfIdf)); + termsCollection.get(dataElement.getLabel()).add(new TfIdf(term, tf, df, tfIdf)); } sum += tfIdf; count++; } } double avg = count > 0 ? sum / count : 0; - results.put(jsonBranch.getLabel() + ":sum", sum); - results.put(jsonBranch.getLabel() + ":avg", avg); + results.put(dataElement.getLabel() + ":sum", sum); + results.put(dataElement.getLabel() + ":avg", avg); } return results; } diff --git a/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessField.java b/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessField.java index ab888e28..76122ef7 100644 --- a/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessField.java +++ b/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessField.java @@ -24,7 +24,7 @@ public class UniquenessField implements Serializable { /** * A JSON path expression. */ - String jsonPath; + String path; int total; double scoreForUniqueValue; @@ -41,12 +41,12 @@ public void setSolrField(String solrField) { this.solrField = solrField; } - public String getJsonPath() { - return jsonPath; + public String getPath() { + return path; } - public void setJsonPath(String jsonPath) { - this.jsonPath = jsonPath; + public void setPath(String path) { + this.path = path; } public int getTotal() { @@ -70,7 +70,7 @@ public String toString() { return "UniquenessField{" + "label='" + label + '\'' + ", solrField='" + solrField + '\'' - + ", jsonPath='" + jsonPath + '\'' + + ", path='" + path + '\'' + ", total=" + total + ", scoreForUniqueValue=" + scoreForUniqueValue + '}'; diff --git a/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessFieldCalculator.java b/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessFieldCalculator.java index b4369bfb..54e31677 100644 --- a/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessFieldCalculator.java +++ b/src/main/java/de/gwdg/metadataqa/api/uniqueness/UniquenessFieldCalculator.java @@ -42,7 +42,7 @@ public UniquenessFieldCalculator(PathCache cache, } public void calculate() { - List values = cache.get(uniquenessField.getJsonPath()); + List values = cache.get(uniquenessField.getPath()); if (values != null) { for (XmlFieldInstance fieldInstance : values) { String value = fieldInstance.getValue(); diff --git a/src/main/java/de/gwdg/metadataqa/api/util/CsvReader.java b/src/main/java/de/gwdg/metadataqa/api/util/CsvReader.java index 50ada6d2..f4303bd8 100644 --- a/src/main/java/de/gwdg/metadataqa/api/util/CsvReader.java +++ b/src/main/java/de/gwdg/metadataqa/api/util/CsvReader.java @@ -3,7 +3,6 @@ import com.opencsv.CSVParser; import com.opencsv.CSVWriter; import com.opencsv.ICSVParser; -import org.apache.commons.lang3.StringUtils; import java.io.IOException; import java.io.Serializable; diff --git a/src/main/java/de/gwdg/metadataqa/api/util/ImageDimensionExtractor.java b/src/main/java/de/gwdg/metadataqa/api/util/ImageDimensionExtractor.java index 13fda3e8..2c2c69b1 100644 --- a/src/main/java/de/gwdg/metadataqa/api/util/ImageDimensionExtractor.java +++ b/src/main/java/de/gwdg/metadataqa/api/util/ImageDimensionExtractor.java @@ -7,7 +7,6 @@ import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; -import java.net.URLConnection; public class ImageDimensionExtractor { public static DimensionDao extractRemote(String url) throws IOException { diff --git a/src/main/java/de/gwdg/metadataqa/api/util/InstanceCounter.java b/src/main/java/de/gwdg/metadataqa/api/util/InstanceCounter.java index b0d90e56..9832356c 100644 --- a/src/main/java/de/gwdg/metadataqa/api/util/InstanceCounter.java +++ b/src/main/java/de/gwdg/metadataqa/api/util/InstanceCounter.java @@ -1,6 +1,6 @@ package de.gwdg.metadataqa.api.util; -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; @@ -10,16 +10,16 @@ public class InstanceCounter { boolean isNA = true; int count = 0; private final PathCache cache; - private final JsonBranch field; + private final DataElement field; private boolean allowEmptyInstances = true; - public InstanceCounter(PathCache cache, JsonBranch field) { + public InstanceCounter(PathCache cache, DataElement field) { this.cache = cache; this.field = field; count(); } - public InstanceCounter(PathCache cache, JsonBranch field, boolean allowEmptyInstances) { + public InstanceCounter(PathCache cache, DataElement field, boolean allowEmptyInstances) { this.cache = cache; this.field = field; this.allowEmptyInstances = allowEmptyInstances; @@ -27,7 +27,7 @@ public InstanceCounter(PathCache cache, JsonBranch field, boolean allowEmptyInst } private void count() { - List instances = cache.get(field.getJsonPath()); + List instances = cache.get(field.getPath()); if (instances != null && !instances.isEmpty()) for (XmlFieldInstance instance : instances) if (allowEmptyInstances || instance.hasValue()) { diff --git a/src/main/java/de/gwdg/metadataqa/api/util/SchemaFactory.java b/src/main/java/de/gwdg/metadataqa/api/util/SchemaFactory.java index 2151e5b7..51bfafc4 100644 --- a/src/main/java/de/gwdg/metadataqa/api/util/SchemaFactory.java +++ b/src/main/java/de/gwdg/metadataqa/api/util/SchemaFactory.java @@ -3,7 +3,7 @@ import de.gwdg.metadataqa.api.configuration.SchemaConfiguration; import de.gwdg.metadataqa.api.configuration.schema.Field; import de.gwdg.metadataqa.api.configuration.schema.Group; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.json.FieldGroup; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Format; @@ -29,10 +29,10 @@ public static Schema fromConfig(SchemaConfiguration config) { schema.setCategories(config.getCategories()); for (Field field : config.getFields()) { - var branch = new JsonBranch(field.getName()); + var branch = new DataElement(field.getName()); if (StringUtils.isNotBlank(field.getPath())) - branch.setJsonPath(field.getPath()); + branch.setPath(field.getPath()); if (field.getCategories() != null) { List categories = new ArrayList<>(); diff --git a/src/main/java/de/gwdg/metadataqa/api/util/SkippedEntitySelector.java b/src/main/java/de/gwdg/metadataqa/api/util/SkippedEntitySelector.java index 68749bcc..ece4bf31 100644 --- a/src/main/java/de/gwdg/metadataqa/api/util/SkippedEntitySelector.java +++ b/src/main/java/de/gwdg/metadataqa/api/util/SkippedEntitySelector.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.util; import de.gwdg.metadataqa.api.calculator.SkippedEntryChecker; -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 java.io.Serializable; @@ -29,15 +29,15 @@ public SkippedEntitySelector(SkippedEntryChecker skippedEntryChecker) { } public boolean isCollectionSkippable(List skippableIds, - JsonBranch collectionBranch, + DataElement collectionBranch, int i, PathCache cache, Object jsonFragment) { var skippable = false; - JsonBranch identifierPath = collectionBranch.getIdentifier(); + DataElement identifierPath = collectionBranch.getIdentifier(); if (!skippableIds.isEmpty() && identifierPath != null) { - var address = String.format("%s/%d/%s", collectionBranch.getJsonPath(), i, identifierPath.getJsonPath()); - List values = cache.get(address, identifierPath.getJsonPath(), jsonFragment); + var address = String.format("%s/%d/%s", collectionBranch.getPath(), i, identifierPath.getPath()); + List values = cache.get(address, identifierPath.getPath(), jsonFragment); var id = (skippedEntryChecker != null) ? skippedEntryChecker.extractId(values.get(0)) : values.get(0).getValue(); diff --git a/src/main/java/de/gwdg/metadataqa/api/xml/OaiPmhXPath.java b/src/main/java/de/gwdg/metadataqa/api/xml/XPathWrapper.java similarity index 93% rename from src/main/java/de/gwdg/metadataqa/api/xml/OaiPmhXPath.java rename to src/main/java/de/gwdg/metadataqa/api/xml/XPathWrapper.java index 9e94e2eb..e1d64ad8 100644 --- a/src/main/java/de/gwdg/metadataqa/api/xml/OaiPmhXPath.java +++ b/src/main/java/de/gwdg/metadataqa/api/xml/XPathWrapper.java @@ -27,10 +27,10 @@ import java.util.logging.Level; import java.util.logging.Logger; -public class OaiPmhXPath implements Serializable { +public class XPathWrapper implements Serializable { private static final long serialVersionUID = 3040547541095974755L; - private static final Logger LOGGER = Logger.getLogger(OaiPmhXPath.class.getCanonicalName()); + private static final Logger LOGGER = Logger.getLogger(XPathWrapper.class.getCanonicalName()); private static transient XPath xpathEngine; private static final DocumentBuilder builder = initializeDocumentBuilder(); @@ -51,11 +51,11 @@ private static DocumentBuilder initializeDocumentBuilder() { Document document; - public OaiPmhXPath(String input) { + public XPathWrapper(String input) { parseContent(input); } - public OaiPmhXPath(String input, Map customNamespaces) { + public XPathWrapper(String input, Map customNamespaces) { if (this.namespaces != customNamespaces) { namespaceChanged = true; this.namespaces = customNamespaces; @@ -63,11 +63,11 @@ public OaiPmhXPath(String input, Map customNamespaces) { parseContent(input); } - public OaiPmhXPath(File input) { + public XPathWrapper(File input) { parseFile(input.getPath()); } - public OaiPmhXPath(File input, Map customNamespaces) { + public XPathWrapper(File input, Map customNamespaces) { if (this.namespaces != customNamespaces) { namespaceChanged = true; this.namespaces = customNamespaces; @@ -87,7 +87,7 @@ private void initialize() { } } - public OaiPmhXPath(String input, boolean fromString) { + public XPathWrapper(String input, boolean fromString) { if (fromString) { parseContent(input); } else { diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFacadeTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFacadeTest.java index 74da8501..043d1fb2 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFacadeTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFacadeTest.java @@ -5,7 +5,7 @@ import com.opencsv.exceptions.CsvValidationException; import de.gwdg.metadataqa.api.configuration.MeasurementConfiguration; 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.Category; import de.gwdg.metadataqa.api.schema.*; import de.gwdg.metadataqa.api.schema.edm.EdmOaiPmhJsonSchema; @@ -361,23 +361,23 @@ public void testNoAbbreviate_measureAsMetricResult() throws URISyntaxException, private CalculatorFacade createCalculatorFacadeForCsv() { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) - .addField(new JsonBranch("description")) - .addField(new JsonBranch("variablesMeasured")) - .addField(new JsonBranch("measurementTechnique")) - .addField(new JsonBranch("sameAs")) - .addField(new JsonBranch("doi")) - .addField(new JsonBranch("identifier")) - .addField(new JsonBranch("author")) - .addField(new JsonBranch("isAccessibleForFree")) - .addField(new JsonBranch("dateModified")) - .addField(new JsonBranch("distribution")) - .addField(new JsonBranch("spatialCoverage")) - .addField(new JsonBranch("provider")) - .addField(new JsonBranch("funder")) - .addField(new JsonBranch("temporalCoverage")); + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) + .addField(new DataElement("description")) + .addField(new DataElement("variablesMeasured")) + .addField(new DataElement("measurementTechnique")) + .addField(new DataElement("sameAs")) + .addField(new DataElement("doi")) + .addField(new DataElement("identifier")) + .addField(new DataElement("author")) + .addField(new DataElement("isAccessibleForFree")) + .addField(new DataElement("dateModified")) + .addField(new DataElement("distribution")) + .addField(new DataElement("spatialCoverage")) + .addField(new DataElement("provider")) + .addField(new DataElement("funder")) + .addField(new DataElement("temporalCoverage")); MeasurementConfiguration config = new MeasurementConfiguration() .enableCompletenessMeasurement() diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFactoryTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFactoryTest.java index f85316b3..41820a05 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFactoryTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/CalculatorFactoryTest.java @@ -2,7 +2,7 @@ import de.gwdg.metadataqa.api.configuration.MeasurementConfiguration; import de.gwdg.metadataqa.api.interfaces.Calculator; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Format; import de.gwdg.metadataqa.api.schema.Schema; @@ -18,8 +18,8 @@ public class CalculatorFactoryTest { public void createWithExtractable() { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url")) - .addField(new JsonBranch("name").setExtractable()); + .addField(new DataElement("url")) + .addField(new DataElement("name").setExtractable()); MeasurementConfiguration config = new MeasurementConfiguration() .enableFieldExtractor() @@ -35,8 +35,8 @@ public void createWithExtractable() { public void createWithoutExtractable() { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url")) - .addField(new JsonBranch("name")); + .addField(new DataElement("url")) + .addField(new DataElement("name")); MeasurementConfiguration config = new MeasurementConfiguration() .enableFieldExtractor() diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorLimitedTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorLimitedTest.java index 0f511d92..43cb30d1 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorLimitedTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorLimitedTest.java @@ -3,7 +3,7 @@ import com.jayway.jsonpath.InvalidJsonException; import de.gwdg.metadataqa.api.counter.FieldCounter; 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.model.pathcache.JsonPathCache; import de.gwdg.metadataqa.api.schema.edm.EdmOaiPmLimitedJsonSchema; @@ -18,7 +18,6 @@ import java.util.Map; import org.apache.commons.lang3.BooleanUtils; -import org.apache.commons.lang3.StringUtils; import org.junit.After; import org.junit.AfterClass; @@ -75,23 +74,23 @@ public void testCompleteness() throws URISyntaxException, IOException { FieldCounter cardinalityCounter = calculator.getCardinalityCounter(); // calculator.getExistenceMap(); assertEquals((Double) 0.4, fieldCounter.get("TOTAL")); - // printCheck(JsonBranch.Category.VIEWING, calculator); + // printCheck(Category.VIEWING, calculator); assertEquals((Double) 0.75, fieldCounter.get("VIEWING")); - // printCheck(JsonBranch.Category.CONTEXTUALIZATION, calculator); + // printCheck(Category.CONTEXTUALIZATION, calculator); assertEquals((Double) 0.2727272727272727, fieldCounter.get("CONTEXTUALIZATION")); - // printCheck(JsonBranch.Category.MANDATORY, calculator); + // printCheck(Category.MANDATORY, calculator); assertEquals((Double) 1.0, fieldCounter.get("MANDATORY")); - // printCheck(JsonBranch.Category.MULTILINGUALITY, calculator); + // printCheck(Category.MULTILINGUALITY, calculator); assertEquals((Double) 0.4, fieldCounter.get("MULTILINGUALITY")); - // printCheck(JsonBranch.Category.DESCRIPTIVENESS, calculator); + // printCheck(Category.DESCRIPTIVENESS, calculator); assertEquals((Double) 0.18181818181818182, fieldCounter.get("DESCRIPTIVENESS")); - // printCheck(JsonBranch.Category.BROWSING, calculator); + // printCheck(Category.BROWSING, calculator); assertEquals((Double) 0.35714285714285715, fieldCounter.get("BROWSING")); - // printCheck(JsonBranch.Category.IDENTIFICATION, calculator); + // printCheck(Category.IDENTIFICATION, calculator); assertEquals((Double) 0.5, fieldCounter.get("IDENTIFICATION")); - // printCheck(JsonBranch.Category.SEARCHABILITY, calculator); + // printCheck(Category.SEARCHABILITY, calculator); assertEquals((Double) 0.3888888888888889, fieldCounter.get("SEARCHABILITY")); - // printCheck(JsonBranch.Category.REUSABILITY, calculator); + // printCheck(Category.REUSABILITY, calculator); assertEquals((Double) 0.36363636363636365, fieldCounter.get("REUSABILITY")); assertEquals(35, existenceCounter.size()); assertEquals(35, cardinalityCounter.size()); @@ -103,7 +102,7 @@ public void testCompleteness() throws URISyntaxException, IOException { private List getFieldsByCategory(Category category, Schema schema) { List labels = new ArrayList<>(); - for (JsonBranch branch : schema.getPaths()) { + for (DataElement branch : schema.getPaths()) { if (branch.getCategories().contains(category)) { labels.add(branch.getLabel()); } diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorTest.java index 87e0c64d..24e9e6ab 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/CompletenessCalculatorTest.java @@ -3,7 +3,7 @@ import com.jayway.jsonpath.InvalidJsonException; import de.gwdg.metadataqa.api.counter.FieldCounter; 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.model.pathcache.JsonPathCache; import de.gwdg.metadataqa.api.schema.edm.EdmOaiPmhJsonSchema; @@ -69,23 +69,23 @@ public void testCompleteness() throws URISyntaxException, IOException { FieldCounter cardinalityCounter = calculator.getCardinalityCounter(); // calculator.getExistenceMap(); assertEquals((Double) 0.184, fieldCounter.get("TOTAL")); - // printCheck(JsonBranch.Category.VIEWING, calculator); + // printCheck(Category.VIEWING, calculator); assertEquals((Double) 0.75, fieldCounter.get("VIEWING")); - // printCheck(JsonBranch.Category.CONTEXTUALIZATION, calculator); + // printCheck(Category.CONTEXTUALIZATION, calculator); assertEquals((Double) 0.2727272727272727, fieldCounter.get("CONTEXTUALIZATION")); - // printCheck(JsonBranch.Category.MANDATORY, calculator); + // printCheck(Category.MANDATORY, calculator); assertEquals((Double) 1.0, fieldCounter.get("MANDATORY")); - // printCheck(JsonBranch.Category.MULTILINGUALITY, calculator); + // printCheck(Category.MULTILINGUALITY, calculator); assertEquals((Double) 0.4, fieldCounter.get("MULTILINGUALITY")); - // printCheck(JsonBranch.Category.DESCRIPTIVENESS, calculator); + // printCheck(Category.DESCRIPTIVENESS, calculator); assertEquals((Double) 0.18181818181818182, fieldCounter.get("DESCRIPTIVENESS")); - // printCheck(JsonBranch.Category.BROWSING, calculator); + // printCheck(Category.BROWSING, calculator); assertEquals((Double) 0.35714285714285715, fieldCounter.get("BROWSING")); - // printCheck(JsonBranch.Category.IDENTIFICATION, calculator); + // printCheck(Category.IDENTIFICATION, calculator); assertEquals((Double) 0.5, fieldCounter.get("IDENTIFICATION")); - // printCheck(JsonBranch.Category.SEARCHABILITY, calculator); + // printCheck(Category.SEARCHABILITY, calculator); assertEquals((Double) 0.3888888888888889, fieldCounter.get("SEARCHABILITY")); - // printCheck(JsonBranch.Category.REUSABILITY, calculator); + // printCheck(Category.REUSABILITY, calculator); assertEquals((Double) 0.36363636363636365, fieldCounter.get("REUSABILITY")); String expected = "" + @@ -96,7 +96,7 @@ public void testCompleteness() throws URISyntaxException, IOException { private List getFieldsByCategory(Category category, Schema schema) { List labels = new ArrayList<>(); - for (JsonBranch branch : schema.getPaths()) { + for (DataElement branch : schema.getPaths()) { if (branch.getCategories().contains(category)) { labels.add(branch.getLabel()); } diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/FieldExtractorTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/FieldExtractorTest.java index 88b73d4c..f1ccb554 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/FieldExtractorTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/FieldExtractorTest.java @@ -6,7 +6,7 @@ import de.gwdg.metadataqa.api.configuration.ConfigurationReader; import de.gwdg.metadataqa.api.configuration.MeasurementConfiguration; 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.JsonPathCache; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.CsvAwareSchema; @@ -63,8 +63,8 @@ public void testHeader() throws URISyntaxException, IOException, CsvValidationEx public void testHeaderWithComma() throws URISyntaxException, IOException, CsvValidationException { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url")) - .addField(new JsonBranch("name,with,comma").setExtractable()); + .addField(new DataElement("url")) + .addField(new DataElement("name,with,comma").setExtractable()); MeasurementConfiguration config = new MeasurementConfiguration() .enableFieldExtractor() @@ -145,8 +145,8 @@ public void issue82() throws URISyntaxException, IOException, CsvValidationExcep private CalculatorFacade configureTest() { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setExtractable()) - .addField(new JsonBranch("name")); + .addField(new DataElement("url").setExtractable()) + .addField(new DataElement("name")); MeasurementConfiguration config = new MeasurementConfiguration() .enableFieldExtractor() diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java index d20a4912..d403f29b 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/IndexerTest.java @@ -1,6 +1,6 @@ package de.gwdg.metadataqa.api.calculator; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.model.PathCacheFactory; import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache; import de.gwdg.metadataqa.api.schema.BaseSchema; @@ -62,8 +62,8 @@ public void shutDown() { private Schema getSchema(Format format) { BaseSchema schema = new BaseSchema() .setFormat(format) - .addField(new JsonBranch("url").setExtractable().setIndexField("url")) - .addField(new JsonBranch("name").setExtractable().setIndexField("name")); + .addField(new DataElement("url").setExtractable().setIndexField("url")) + .addField(new DataElement("name").setExtractable().setIndexField("name")); schema.setRecordId(schema.getPathByLabel("url")); return schema; } diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/NodeEnabledCalculatorTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/NodeEnabledCalculatorTest.java index f95a2e03..14e57c8c 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/NodeEnabledCalculatorTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/NodeEnabledCalculatorTest.java @@ -3,7 +3,7 @@ import com.jayway.jsonpath.Configuration; import com.jayway.jsonpath.JsonPath; import com.jayway.jsonpath.PathNotFoundException; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.edm.EdmOaiPmhJsonSchema; import de.gwdg.metadataqa.api.schema.Schema; import de.gwdg.metadataqa.api.util.FileUtils; @@ -11,8 +11,6 @@ import java.net.URISyntaxException; import java.util.List; import net.minidev.json.JSONArray; -import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.assertTrue; @@ -30,10 +28,10 @@ public void test() throws URISyntaxException, IOException { String jsonString = FileUtils.readFirstLineFromResource("general/test.json"); Object jsonDocument = Configuration.defaultConfiguration().jsonProvider().parse(jsonString); - for (JsonBranch collectionBranch : schema.getCollectionPaths()) { + for (DataElement collectionBranch : schema.getCollectionPaths()) { Object rawCollection = null; try { - rawCollection = JsonPath.read(jsonDocument, collectionBranch.getJsonPath()); + rawCollection = JsonPath.read(jsonDocument, collectionBranch.getPath()); } catch (PathNotFoundException e) {} if (rawCollection != null) { @@ -49,10 +47,10 @@ public void test() throws URISyntaxException, IOException { } } - private void processNode(Object node, List fields) { - for (JsonBranch fieldBranch : fields) { + private void processNode(Object node, List fields) { + for (DataElement fieldBranch : fields) { try { - Object val = JsonPath.read(node, fieldBranch.getJsonPath()); + Object val = JsonPath.read(node, fieldBranch.getPath()); if (val != null) { if ("ProvidedCHO/rdf:about".equals(fieldBranch.getLabel())) assertTrue(val instanceof String); diff --git a/src/test/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculatorTest.java b/src/test/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculatorTest.java index 9bece78a..f39c3c19 100644 --- a/src/test/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculatorTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/calculator/TfIdfCalculatorTest.java @@ -1,7 +1,7 @@ package de.gwdg.metadataqa.api.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.PathCacheFactory; import de.gwdg.metadataqa.api.model.XmlFieldInstance; import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache; @@ -86,7 +86,7 @@ public void measure() throws Exception { SolrClient solrClient = new SolrClientMock(solrConfiguration); CsvPathCache cache = (CsvPathCache) PathCacheFactory.getInstance(schema.getFormat(), "URL,two three"); cache.setCsvReader(new CsvReader().setHeader( ((CsvAwareSchema) schema).getHeader() )); - cache.setRecordId(((List)cache.get(schema.getRecordId().getJsonPath())).get(0).getValue()); + cache.setRecordId(((List)cache.get(schema.getRecordId().getPath())).get(0).getValue()); TfIdfCalculator calculator = new TfIdfCalculator(schema); calculator.setSolrClient(solrClient); @@ -102,8 +102,8 @@ public void measure() throws Exception { private Schema getSchema(Format format) { BaseSchema schema = new BaseSchema() .setFormat(format) - .addField(new JsonBranch("url").setExtractable().setIndexField("url")) - .addField(new JsonBranch("name").setExtractable().setIndexField("name")); + .addField(new DataElement("url").setExtractable().setIndexField("url")) + .addField(new DataElement("name").setExtractable().setIndexField("name")); schema.setRecordId(schema.getPathByLabel("url")); return schema; } diff --git a/src/test/java/de/gwdg/metadataqa/api/cli/RecordFactoryTest.java b/src/test/java/de/gwdg/metadataqa/api/cli/RecordFactoryTest.java index cac6b738..26d369e3 100644 --- a/src/test/java/de/gwdg/metadataqa/api/cli/RecordFactoryTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/cli/RecordFactoryTest.java @@ -6,7 +6,7 @@ import de.gwdg.metadataqa.api.interfaces.MetricResult; import de.gwdg.metadataqa.api.io.reader.RecordReader; import de.gwdg.metadataqa.api.io.writer.ResultWriter; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Format; import de.gwdg.metadataqa.api.schema.Schema; @@ -140,7 +140,7 @@ private CalculatorFacade getCalculator(Format format) { private Schema getSchema(Format format) { return new BaseSchema() .setFormat(format) - .addField(new JsonBranch("url").setExtractable()) - .addField(new JsonBranch("name").setExtractable()); + .addField(new DataElement("url").setExtractable()) + .addField(new DataElement("name").setExtractable()); } } \ No newline at end of file diff --git a/src/test/java/de/gwdg/metadataqa/api/io/IOTestBase.java b/src/test/java/de/gwdg/metadataqa/api/io/IOTestBase.java index 4952a908..1284d629 100644 --- a/src/test/java/de/gwdg/metadataqa/api/io/IOTestBase.java +++ b/src/test/java/de/gwdg/metadataqa/api/io/IOTestBase.java @@ -2,7 +2,7 @@ import de.gwdg.metadataqa.api.calculator.CalculatorFacade; import de.gwdg.metadataqa.api.configuration.MeasurementConfiguration; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Format; import de.gwdg.metadataqa.api.schema.Schema; @@ -26,7 +26,7 @@ protected CalculatorFacade getCalculator(Format format) { protected Schema getSchema(Format format) { return new BaseSchema() .setFormat(format) - .addField(new JsonBranch("url").setExtractable()) - .addField(new JsonBranch("name").setExtractable()); + .addField(new DataElement("url").setExtractable()) + .addField(new DataElement("name").setExtractable()); } } diff --git a/src/test/java/de/gwdg/metadataqa/api/io/reader/XMLRecordReaderTest.java b/src/test/java/de/gwdg/metadataqa/api/io/reader/XMLRecordReaderTest.java index 62d2854d..3797b168 100644 --- a/src/test/java/de/gwdg/metadataqa/api/io/reader/XMLRecordReaderTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/io/reader/XMLRecordReaderTest.java @@ -2,7 +2,7 @@ import de.gwdg.metadataqa.api.interfaces.MetricResult; import de.gwdg.metadataqa.api.io.IOTestBase; -import de.gwdg.metadataqa.api.json.JsonBranch; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Format; import de.gwdg.metadataqa.api.schema.Schema; @@ -51,8 +51,8 @@ public void next() { protected Schema getSchema(Format format) { Schema schema = new BaseSchema() .setFormat(format) - .addField(new JsonBranch("record/url").setExtractable()) - .addField(new JsonBranch("record/name").setExtractable()); + .addField(new DataElement("record/url").setExtractable()) + .addField(new DataElement("record/name").setExtractable()); return schema; } } \ No newline at end of file diff --git a/src/test/java/de/gwdg/metadataqa/api/json/JsonBranchTest.java b/src/test/java/de/gwdg/metadataqa/api/json/DataElementTest.java similarity index 59% rename from src/test/java/de/gwdg/metadataqa/api/json/JsonBranchTest.java rename to src/test/java/de/gwdg/metadataqa/api/json/DataElementTest.java index 193a8a58..120208e8 100644 --- a/src/test/java/de/gwdg/metadataqa/api/json/JsonBranchTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/json/DataElementTest.java @@ -10,71 +10,71 @@ import static org.junit.Assert.*; -public class JsonBranchTest { +public class DataElementTest { @Test public void IfCloned_ObjectAreDifferent() { Schema schema = new EdmFullBeanSchema(); - JsonBranch providerProxy = schema.getPathByLabel("Proxy"); + DataElement providerProxy = schema.getPathByLabel("Proxy"); - JsonBranch europeanaProxy = null; + DataElement europeanaProxy = null; try { - europeanaProxy = JsonBranch.copy(providerProxy); + europeanaProxy = DataElement.copy(providerProxy); } catch (CloneNotSupportedException e) { e.printStackTrace(); } assertNotNull(europeanaProxy); - europeanaProxy.setJsonPath( - providerProxy.getJsonPath().replace("false", "true")); + europeanaProxy.setPath( + providerProxy.getPath().replace("false", "true")); - assertEquals("$.['proxies'][?(@['europeanaProxy'] == false)]", providerProxy.getJsonPath()); + assertEquals("$.['proxies'][?(@['europeanaProxy'] == false)]", providerProxy.getPath()); assertEquals(56, providerProxy.getChildren().size()); assertEquals(providerProxy.hashCode(), providerProxy.getChildren().get(0).getParent().hashCode()); assertEquals("$.['proxies'][?(@['europeanaProxy'] == false)]", - providerProxy.getChildren().get(0).getParent().getJsonPath()); + providerProxy.getChildren().get(0).getParent().getPath()); assertEquals("$.['proxies'][?(@['europeanaProxy'] == false)][*]['about']", - providerProxy.getChildren().get(0).getAbsoluteJsonPath()); + providerProxy.getChildren().get(0).getAbsolutePath()); - assertEquals("$.['proxies'][?(@['europeanaProxy'] == true)]", europeanaProxy.getJsonPath()); + assertEquals("$.['proxies'][?(@['europeanaProxy'] == true)]", europeanaProxy.getPath()); assertEquals(56, europeanaProxy.getChildren().size()); assertEquals(europeanaProxy.hashCode(), europeanaProxy.getChildren().get(0).getParent().hashCode()); assertEquals("$.['proxies'][?(@['europeanaProxy'] == true)]", - europeanaProxy.getChildren().get(0).getParent().getJsonPath()); + europeanaProxy.getChildren().get(0).getParent().getPath()); assertEquals("$.['proxies'][?(@['europeanaProxy'] == true)][*]['about']", - europeanaProxy.getChildren().get(0).getAbsoluteJsonPath()); + europeanaProxy.getChildren().get(0).getAbsolutePath()); } @Test public void testParent() { Schema schema = new EdmOaiPmhXmlSchema(); - JsonBranch providerProxyXml = schema.getPathByLabel("Proxy"); + DataElement providerProxyXml = schema.getPathByLabel("Proxy"); assertEquals("//ore:Proxy[edm:europeanaProxy/text() = 'false']/@rdf:about", - providerProxyXml.getChildren().get(0).getAbsoluteJsonPath(schema.getFormat())); + providerProxyXml.getChildren().get(0).getAbsolutePath(schema.getFormat())); schema = new EdmOaiPmhJsonSchema(); - JsonBranch providerProxyJson = schema.getPathByLabel("Proxy"); + DataElement providerProxyJson = schema.getPathByLabel("Proxy"); assertEquals("$.['ore:Proxy'][?(@['edm:europeanaProxy'][0] == 'false')][*]['@about']", - providerProxyJson.getChildren().get(0).getAbsoluteJsonPath(schema.getFormat())); + providerProxyJson.getChildren().get(0).getAbsolutePath(schema.getFormat())); schema = new EdmFullBeanSchema(); providerProxyJson = schema.getPathByLabel("Proxy"); assertEquals("$.['proxies'][?(@['europeanaProxy'] == false)][*]['about']", - providerProxyJson.getChildren().get(0).getAbsoluteJsonPath(schema.getFormat())); + providerProxyJson.getChildren().get(0).getAbsolutePath(schema.getFormat())); } @Test public void constructWithSolr() { - JsonBranch path = new JsonBranch("author", "author", "author"); + DataElement path = new DataElement("author", "author", "author"); assertEquals("author", path.getLabel()); - assertEquals("author", path.getJsonPath()); + assertEquals("author", path.getPath()); assertEquals("author", path.getSolrFieldName()); } @Test public void setLabel() { - JsonBranch path1 = new JsonBranch("author", "author", "author"); - JsonBranch path2 = path1.setLabel("author2"); + DataElement path1 = new DataElement("author", "author", "author"); + DataElement path2 = path1.setLabel("author2"); assertEquals(path1, path2); assertTrue(path1.equals(path2)); assertEquals("author2", path1.getLabel()); @@ -83,8 +83,8 @@ public void setLabel() { @Test public void setSolrFieldName() { - JsonBranch path1 = new JsonBranch("author", "author", "author"); - JsonBranch path2 = path1.setSolrFieldName("author2"); + DataElement path1 = new DataElement("author", "author", "author"); + DataElement path2 = path1.setSolrFieldName("author2"); assertEquals(path1, path2); assertTrue(path1.equals(path2)); assertEquals("author2", path1.getSolrFieldName()); @@ -93,8 +93,8 @@ public void setSolrFieldName() { @Test public void setExtractable_notChained() { - JsonBranch path1 = new JsonBranch("author", "author", "author"); - JsonBranch path2 = path1.setExtractable(); + DataElement path1 = new DataElement("author", "author", "author"); + DataElement path2 = path1.setExtractable(); assertEquals(path1, path2); assertTrue(path1.equals(path2)); assertTrue(path1.isExtractable()); @@ -103,17 +103,17 @@ public void setExtractable_notChained() { @Test public void setExtractable_chained() { - JsonBranch path1 = new JsonBranch("author", "author", "author") + DataElement path1 = new DataElement("author", "author", "author") .setExtractable(); assertEquals("author", path1.getSolrFieldName()); assertTrue(path1.isExtractable()); - JsonBranch path2 = new JsonBranch("author", "author", "author") + DataElement path2 = new DataElement("author", "author", "author") .setExtractable(true); assertEquals("author", path2.getSolrFieldName()); assertTrue(path2.isExtractable()); - JsonBranch path3 = new JsonBranch("author", "author", "author") + DataElement path3 = new DataElement("author", "author", "author") .setExtractable(false); assertEquals("author", path3.getSolrFieldName()); assertFalse(path3.isExtractable()); @@ -121,47 +121,47 @@ public void setExtractable_chained() { @Test public void getAbsolutePath() { - JsonBranch path = new JsonBranch("author", "author", "author"); - assertEquals("author", path.getAbsoluteJsonPath(Format.CSV)); - assertEquals("author", path.getAbsoluteJsonPath(0)); + DataElement path = new DataElement("author", "author", "author"); + assertEquals("author", path.getAbsolutePath(Format.CSV)); + assertEquals("author", path.getAbsolutePath(0)); } @Test public void test_toString() { - JsonBranch path1 = new JsonBranch("author", "author"); + DataElement path = new DataElement("author", "author"); assertEquals( - "JsonBranch{label=author, jsonPath=author, categories=[], " + + "DataElement{label=author, path=author, categories=[], " + "solrFieldName=null, parent=null, identifier=null, nr_of_children=0, collection=false}", - path1.toString()); + path.toString()); } @Test public void test_toString_withParent() { - JsonBranch path1 = new JsonBranch("author", "author") - .setParent(new JsonBranch("book", "book")); + DataElement path = new DataElement("author", "author") + .setParent(new DataElement("book", "book")); assertEquals( - "JsonBranch{label=author, jsonPath=author, categories=[], " + + "DataElement{label=author, path=author, categories=[], " + "solrFieldName=null, parent=book, identifier=null, nr_of_children=0, collection=false}", - path1.toString()); + path.toString()); } @Test public void test_toString_withIdentifier() { - JsonBranch path1 = new JsonBranch("author", "author") - .setParent(new JsonBranch("book", "book")) - .setIdentifier(new JsonBranch("id")); + DataElement path = new DataElement("author", "author") + .setParent(new DataElement("book", "book")) + .setIdentifier(new DataElement("id")); assertEquals( - "JsonBranch{label=author, jsonPath=author, categories=[], " + + "DataElement{label=author, path=author, categories=[], " + "solrFieldName=null, parent=book, identifier=id, nr_of_children=0, collection=false}", - path1.toString()); + path.toString()); } @Test public void setChildren() { - JsonBranch path = new JsonBranch("author", "author") + DataElement path = new DataElement("author", "author") .setChildren(Arrays.asList( - new JsonBranch("name", "name"), - new JsonBranch("date", "date") + new DataElement("name", "name"), + new DataElement("date", "date") )); assertEquals(2, path.getChildren().size()); diff --git a/src/test/java/de/gwdg/metadataqa/api/model/CategoryTest.java b/src/test/java/de/gwdg/metadataqa/api/model/CategoryTest.java index 604d3da6..826641ed 100644 --- a/src/test/java/de/gwdg/metadataqa/api/model/CategoryTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/model/CategoryTest.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 de.gwdg.metadataqa.api.schema.BaseSchema; import de.gwdg.metadataqa.api.schema.Schema; import de.gwdg.metadataqa.api.schema.edm.EdmFullBeanSchema; @@ -12,8 +12,8 @@ public class CategoryTest { - Schema schemaWithActiveField = new BaseSchema().addField(new JsonBranch("contentWarning").setCategories("CONTEXT")); - Schema schemaWithInactiveField = new BaseSchema().addField(new JsonBranch("contentWarning").setCategories("CONTEXT").setActive(false)); + Schema schemaWithActiveField = new BaseSchema().addField(new DataElement("contentWarning").setCategories("CONTEXT")); + Schema schemaWithInactiveField = new BaseSchema().addField(new DataElement("contentWarning").setCategories("CONTEXT").setActive(false)); @Test public void extractCategories_withActive() { diff --git a/src/test/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessCheckerTest.java b/src/test/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessCheckerTest.java index b7e8f216..e8709208 100644 --- a/src/test/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessCheckerTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/rule/singlefieldchecker/UniquenessCheckerTest.java @@ -1,8 +1,7 @@ package de.gwdg.metadataqa.api.rule.singlefieldchecker; -import de.gwdg.metadataqa.api.calculator.Indexer; 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.PathCacheFactory; import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache; import de.gwdg.metadataqa.api.rule.RuleCheckerOutput; @@ -71,8 +70,8 @@ public void failure() { private Schema getSchema(Format format) { BaseSchema schema = new BaseSchema() .setFormat(format) - .addField(new JsonBranch("url").setExtractable().setIndexField("url")) - .addField(new JsonBranch("name").setExtractable().setIndexField("name")); + .addField(new DataElement("url").setExtractable().setIndexField("url")) + .addField(new DataElement("name").setExtractable().setIndexField("name")); schema.setRecordId(schema.getPathByLabel("url")); return schema; } diff --git a/src/test/java/de/gwdg/metadataqa/api/schema/BaseSchemaTest.java b/src/test/java/de/gwdg/metadataqa/api/schema/BaseSchemaTest.java index a206aba8..7973cc76 100644 --- a/src/test/java/de/gwdg/metadataqa/api/schema/BaseSchemaTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/schema/BaseSchemaTest.java @@ -7,7 +7,7 @@ import de.gwdg.metadataqa.api.calculator.CalculatorFacade; import de.gwdg.metadataqa.api.configuration.*; import de.gwdg.metadataqa.api.configuration.schema.Rule; -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.singlefieldchecker.HasValueChecker; import de.gwdg.metadataqa.api.rule.RuleCatalog; @@ -29,23 +29,23 @@ public class BaseSchemaTest { public void testConstructor() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) - .addField(new JsonBranch("description")) - .addField(new JsonBranch("variablesMeasured")) - .addField(new JsonBranch("measurementTechnique")) - .addField(new JsonBranch("sameAs")) - .addField(new JsonBranch("doi")) - .addField(new JsonBranch("identifier")) - .addField(new JsonBranch("author")) - .addField(new JsonBranch("isAccessibleForFree")) - .addField(new JsonBranch("dateModified")) - .addField(new JsonBranch("distribution")) - .addField(new JsonBranch("spatialCoverage")) - .addField(new JsonBranch("provider")) - .addField(new JsonBranch("funder")) - .addField(new JsonBranch("temporalCoverage")); + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) + .addField(new DataElement("description")) + .addField(new DataElement("variablesMeasured")) + .addField(new DataElement("measurementTechnique")) + .addField(new DataElement("sameAs")) + .addField(new DataElement("doi")) + .addField(new DataElement("identifier")) + .addField(new DataElement("author")) + .addField(new DataElement("isAccessibleForFree")) + .addField(new DataElement("dateModified")) + .addField(new DataElement("distribution")) + .addField(new DataElement("spatialCoverage")) + .addField(new DataElement("provider")) + .addField(new DataElement("funder")) + .addField(new DataElement("temporalCoverage")); assertEquals( Arrays.asList("url", "name", "alternateName", "description", "variablesMeasured", @@ -68,23 +68,23 @@ public void testConstructor() throws Exception { public void testCalculation() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) - .addField(new JsonBranch("description")) - .addField(new JsonBranch("variablesMeasured")) - .addField(new JsonBranch("measurementTechnique")) - .addField(new JsonBranch("sameAs")) - .addField(new JsonBranch("doi")) - .addField(new JsonBranch("identifier")) - .addField(new JsonBranch("author")) - .addField(new JsonBranch("isAccessibleForFree")) - .addField(new JsonBranch("dateModified")) - .addField(new JsonBranch("distribution")) - .addField(new JsonBranch("spatialCoverage")) - .addField(new JsonBranch("provider")) - .addField(new JsonBranch("funder")) - .addField(new JsonBranch("temporalCoverage")); + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) + .addField(new DataElement("description")) + .addField(new DataElement("variablesMeasured")) + .addField(new DataElement("measurementTechnique")) + .addField(new DataElement("sameAs")) + .addField(new DataElement("doi")) + .addField(new DataElement("identifier")) + .addField(new DataElement("author")) + .addField(new DataElement("isAccessibleForFree")) + .addField(new DataElement("dateModified")) + .addField(new DataElement("distribution")) + .addField(new DataElement("spatialCoverage")) + .addField(new DataElement("provider")) + .addField(new DataElement("funder")) + .addField(new DataElement("temporalCoverage")); MeasurementConfiguration config = new MeasurementConfiguration() .enableCompletenessMeasurement() @@ -147,23 +147,23 @@ public void testCalculation() throws Exception { public void testCalculation_noHeader_nonexistent() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) - .addField(new JsonBranch("description")) - .addField(new JsonBranch("variablesMeasured")) - .addField(new JsonBranch("measurementTechnique")) - .addField(new JsonBranch("sameAs")) - .addField(new JsonBranch("doi")) - .addField(new JsonBranch("identifier")) - .addField(new JsonBranch("author")) - .addField(new JsonBranch("isAccessibleForFree")) - .addField(new JsonBranch("dateModified")) - .addField(new JsonBranch("distribution")) - .addField(new JsonBranch("spatialCoverage")) - .addField(new JsonBranch("provider")) - .addField(new JsonBranch("funder")) - .addField(new JsonBranch("temporalCoverageX")); + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) + .addField(new DataElement("description")) + .addField(new DataElement("variablesMeasured")) + .addField(new DataElement("measurementTechnique")) + .addField(new DataElement("sameAs")) + .addField(new DataElement("doi")) + .addField(new DataElement("identifier")) + .addField(new DataElement("author")) + .addField(new DataElement("isAccessibleForFree")) + .addField(new DataElement("dateModified")) + .addField(new DataElement("distribution")) + .addField(new DataElement("spatialCoverage")) + .addField(new DataElement("provider")) + .addField(new DataElement("funder")) + .addField(new DataElement("temporalCoverageX")); CalculatorFacade facade = new CalculatorFacade(new MeasurementConfiguration() .enableCompletenessMeasurement() @@ -226,23 +226,23 @@ public void testCalculation_noHeader_nonexistent() throws Exception { public void testCalculation_setFirstRowAsHeader() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) - .addField(new JsonBranch("description")) - .addField(new JsonBranch("variablesMeasured")) - .addField(new JsonBranch("measurementTechnique")) - .addField(new JsonBranch("sameAs")) - .addField(new JsonBranch("doi")) - .addField(new JsonBranch("identifier")) - .addField(new JsonBranch("author")) - .addField(new JsonBranch("isAccessibleForFree")) - .addField(new JsonBranch("dateModified")) - .addField(new JsonBranch("distribution")) - .addField(new JsonBranch("spatialCoverage")) - .addField(new JsonBranch("provider")) - .addField(new JsonBranch("funder")) - .addField(new JsonBranch("temporalCoverage")); + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) + .addField(new DataElement("description")) + .addField(new DataElement("variablesMeasured")) + .addField(new DataElement("measurementTechnique")) + .addField(new DataElement("sameAs")) + .addField(new DataElement("doi")) + .addField(new DataElement("identifier")) + .addField(new DataElement("author")) + .addField(new DataElement("isAccessibleForFree")) + .addField(new DataElement("dateModified")) + .addField(new DataElement("distribution")) + .addField(new DataElement("spatialCoverage")) + .addField(new DataElement("provider")) + .addField(new DataElement("funder")) + .addField(new DataElement("temporalCoverage")); CalculatorFacade facade = new CalculatorFacade( new MeasurementConfiguration() @@ -303,9 +303,9 @@ public void testCalculation_setFirstRowAsHeader() throws Exception { public void testCalculation_limitFields() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("alternateName")) + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("alternateName")) ; CalculatorFacade facade = new CalculatorFacade(new MeasurementConfiguration() @@ -357,9 +357,9 @@ public void testCalculation_limitFields() throws Exception { public void testCalculation_nonexistentFields() throws Exception { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url").setCategories(Category.MANDATORY).setExtractable()) - .addField(new JsonBranch("name")) - .addField(new JsonBranch("nonexistent")) + .addField(new DataElement("url").setCategories(Category.MANDATORY).setExtractable()) + .addField(new DataElement("name")) + .addField(new DataElement("nonexistent")) ; CalculatorFacade facade = new CalculatorFacade( @@ -607,7 +607,7 @@ public void testAddField() { assertEquals(1, schema.getPaths().size()); assertEquals("url", schema.getPaths().get(0).getLabel()); - assertEquals("url", schema.getPaths().get(0).getJsonPath()); + assertEquals("url", schema.getPaths().get(0).getPath()); } @Test @@ -618,9 +618,9 @@ public void testAddFields() { assertEquals(2, schema.getPaths().size()); assertEquals("url", schema.getPaths().get(0).getLabel()); - assertEquals("url", schema.getPaths().get(0).getJsonPath()); + assertEquals("url", schema.getPaths().get(0).getPath()); assertEquals("name", schema.getPaths().get(1).getLabel()); - assertEquals("name", schema.getPaths().get(1).getJsonPath()); + assertEquals("name", schema.getPaths().get(1).getPath()); } @Test @@ -656,7 +656,7 @@ public void getIndexFields_empty() { .setFormat(Format.CSV) .addFields("url", "name"); - List indexFields = schema.getIndexFields(); + List indexFields = schema.getIndexFields(); assertNotNull(indexFields); assertTrue(indexFields.isEmpty()); } @@ -668,7 +668,7 @@ public void getIndexFields_nonempty() { .addFields("url", "name"); schema.getPathByLabel("url").setIndexField("url"); - List indexFields = schema.getIndexFields(); + List indexFields = schema.getIndexFields(); assertNotNull(indexFields); assertFalse(indexFields.isEmpty()); assertEquals(1, indexFields.size()); @@ -719,8 +719,8 @@ public void testRuleCheckers() { Schema schema = new BaseSchema() .setFormat(Format.CSV) - .addField(new JsonBranch("url", "url").setRule(Arrays.asList(rule))) - .addField(new JsonBranch("uri", "uri")) + .addField(new DataElement("url", "url").setRule(Arrays.asList(rule))) + .addField(new DataElement("uri", "uri")) ; assertEquals(8, schema.getRuleCheckers().size()); @@ -753,8 +753,8 @@ public void testToString() { @Test public void testCollection() { Schema schema = new BaseSchema() - .addField(new JsonBranch("author", "author").setCollection(true)) - .addField(new JsonBranch("title", "title").setCollection(false)) + .addField(new DataElement("author", "author").setCollection(true)) + .addField(new DataElement("title", "title").setCollection(false)) ; assertNotNull(schema.getCollectionPaths()); assertEquals(1, schema.getCollectionPaths().size()); @@ -764,10 +764,10 @@ public void testCollection() { @Test public void getRuleChecker() { Schema schema = new BaseSchema() - .addField(new JsonBranch("author", "author").addRule( + .addField(new DataElement("author", "author").addRule( new Rule().withHasValue("a") )) - .addField(new JsonBranch("title", "title").setCollection(false)) + .addField(new DataElement("title", "title").setCollection(false)) ; List checkers = schema.getRuleCheckers(); assertNotNull(checkers); @@ -783,7 +783,7 @@ public void withIndexFields() throws FileNotFoundException { assertNotNull(schema); assertNotNull(schema.getPathByLabel("url")); - JsonBranch branch = schema.getPathByLabel("url"); + DataElement branch = schema.getPathByLabel("url"); assertEquals("url", branch.getLabel()); assertEquals("url", branch.getIndexField()); assertNotNull(schema.getIndexFields()); diff --git a/src/test/java/de/gwdg/metadataqa/api/schema/GoogleDatasetSchema.java b/src/test/java/de/gwdg/metadataqa/api/schema/GoogleDatasetSchema.java index 00f024bb..ab925a96 100644 --- a/src/test/java/de/gwdg/metadataqa/api/schema/GoogleDatasetSchema.java +++ b/src/test/java/de/gwdg/metadataqa/api/schema/GoogleDatasetSchema.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; @@ -12,31 +12,31 @@ public class GoogleDatasetSchema implements Schema, CsvAwareSchema { - 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<>(); private static Map extractableFields = new LinkedHashMap<>(); private static List categories = null; private static List ruleCheckers = null; static { - addPath(new JsonBranch("url", "url").setCategories(Category.MANDATORY)); - addPath(new JsonBranch("name", "name")); - addPath(new JsonBranch("alternateName", "alternateName")); - addPath(new JsonBranch("description", "description")); - addPath(new JsonBranch("variablesMeasured", "variablesMeasured")); - addPath(new JsonBranch("measurementTechnique", "measurementTechnique")); - addPath(new JsonBranch("sameAs", "sameAs")); - addPath(new JsonBranch("doi", "doi")); - addPath(new JsonBranch("identifier", "identifier")); - addPath(new JsonBranch("author", "author")); - addPath(new JsonBranch("isAccessibleForFree", "isAccessibleForFree")); - addPath(new JsonBranch("dateModified", "dateModified")); - addPath(new JsonBranch("distribution", "distribution")); - addPath(new JsonBranch("spatialCoverage", "spatialCoverage")); - addPath(new JsonBranch("provider", "provider")); - addPath(new JsonBranch("funder", "funder")); - addPath(new JsonBranch("temporalCoverage", "temporalCoverage")); + addPath(new DataElement("url", "url").setCategories(Category.MANDATORY)); + addPath(new DataElement("name", "name")); + addPath(new DataElement("alternateName", "alternateName")); + addPath(new DataElement("description", "description")); + addPath(new DataElement("variablesMeasured", "variablesMeasured")); + addPath(new DataElement("measurementTechnique", "measurementTechnique")); + addPath(new DataElement("sameAs", "sameAs")); + addPath(new DataElement("doi", "doi")); + addPath(new DataElement("identifier", "identifier")); + addPath(new DataElement("author", "author")); + addPath(new DataElement("isAccessibleForFree", "isAccessibleForFree")); + addPath(new DataElement("dateModified", "dateModified")); + addPath(new DataElement("distribution", "distribution")); + addPath(new DataElement("spatialCoverage", "spatialCoverage")); + addPath(new DataElement("provider", "provider")); + addPath(new DataElement("funder", "funder")); + addPath(new DataElement("temporalCoverage", "temporalCoverage")); extractableFields.put("url", "url"); } @@ -48,22 +48,22 @@ 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()); } @Override - public JsonBranch getPathByLabel(String label) { + public DataElement getPathByLabel(String label) { return PATHS.get(label); } @@ -78,7 +78,7 @@ public List getNoLanguageFields() { } @Override - public List getIndexFields() { + public List getIndexFields() { throw new UnsupportedOperationException("Not supported yet."); } @@ -93,8 +93,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 @@ -110,7 +110,7 @@ public List getRuleCheckers() { return ruleCheckers; } - private static void addPath(JsonBranch branch) { + private static void addPath(DataElement branch) { PATHS.put(branch.getLabel(), branch); if (branch.getParent() == null) @@ -123,14 +123,14 @@ private static void addPath(JsonBranch branch) { @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; } @Override - public JsonBranch getRecordId() { + public DataElement getRecordId() { return PATHS.get("url"); } } diff --git a/src/test/java/de/gwdg/metadataqa/api/schema/MarcJsonTest.java b/src/test/java/de/gwdg/metadataqa/api/schema/MarcJsonTest.java index e9e137c5..9d38e394 100644 --- a/src/test/java/de/gwdg/metadataqa/api/schema/MarcJsonTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/schema/MarcJsonTest.java @@ -1,6 +1,6 @@ package de.gwdg.metadataqa.api.schema; -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.JsonPathCache; import de.gwdg.metadataqa.api.model.XmlFieldInstance; @@ -152,23 +152,23 @@ public void testSubfield() { public void testMarcSchemaIteration() { List skippable = Arrays.asList("leader", "001", "003", "005", "006", "007", "008"); // fixedValues - for (JsonBranch branch : schema.getPaths()) { + for (DataElement branch : schema.getPaths()) { if (skippable.contains(branch.getLabel()) || branch.getParent() != null) continue; List>> expectedList = fixedValues.get(branch.getLabel()); - JSONArray fieldInstances = (JSONArray) cache.getFragment(branch.getJsonPath()); + JSONArray fieldInstances = (JSONArray) cache.getFragment(branch.getPath()); for (int fieldInsanceNr = 0; fieldInsanceNr < fieldInstances.size(); fieldInsanceNr++) { Map> expectedInstances = expectedList.get(fieldInsanceNr); Map fieldInstance = (Map)fieldInstances.get(fieldInsanceNr); - for(JsonBranch subfieldDef : branch.getChildren()) { + for(DataElement subfieldDef : branch.getChildren()) { // alternative methods: // Object childInstance1 = cache.getFragment(child.getAbsoluteJsonPath(insanceNr), child.getJsonPath(), instance); // Object childInstance2 = cache.getFragment(child.getAbsoluteJsonPath(insanceNr)); List childInstances = (List) - cache.get(subfieldDef.getAbsoluteJsonPath(fieldInsanceNr), - subfieldDef.getJsonPath(), fieldInstance); + cache.get(subfieldDef.getAbsolutePath(fieldInsanceNr), + subfieldDef.getPath(), fieldInstance); if (childInstances != null) { List expected = expectedInstances.get(subfieldDef.getLabel()); @@ -194,23 +194,23 @@ public void testSubfieldMultiple() { assertEquals("net.minidev.json.JSONArray", fragments.get(0).getClass().getCanonicalName()); Map first = (Map)((JSONArray)fragments.get(0)).get(0); - JsonBranch branch = schema.getPathByLabel("924"); + DataElement branch = schema.getPathByLabel("924"); - rawFragment = cache.getFragment(branch.getJsonPath()); + rawFragment = cache.getFragment(branch.getPath()); assertNotNull(rawFragment); List fieldInstances = Converter.jsonObjectToList(rawFragment, schema); assertEquals(12, fragments.size()); for (var i = 0; i < fieldInstances.size(); i++) { Object fieldInstance = fieldInstances.get(i); List subfieldInstances = null; - for (JsonBranch child : branch.getChildren()) { + for (DataElement child : branch.getChildren()) { List values = null; - if (child.getJsonPath().startsWith("$.subfield")) { + if (child.getPath().startsWith("$.subfield")) { if (subfieldInstances == null) - subfieldInstances = readSubfieldInstances(fieldInstance, branch.getJsonPath() + i); + subfieldInstances = readSubfieldInstances(fieldInstance, branch.getPath() + i); for (int j = 0; j < subfieldInstances.size(); j++) { - String address = child.getAbsoluteJsonPath((i * 100) + j); - String path = child.getJsonPath().replace("subfield", ""); + String address = child.getAbsolutePath((i * 100) + j); + String path = child.getPath().replace("subfield", ""); List partValues = cache.get(address, path, subfieldInstances.get(j)); if (partValues != null) @@ -220,7 +220,7 @@ public void testSubfieldMultiple() { values.addAll(partValues); } } else { - values = cache.get(child.getAbsoluteJsonPath(), child.getJsonPath(), fieldInstance); + values = cache.get(child.getAbsolutePath(), child.getPath(), fieldInstance); } if (values != null) { // System.err.printf("%s nr of values: %d\n", child.getLabel(), values.size()); @@ -241,14 +241,14 @@ private List readSubfieldInstances(Object fieldInstance, String address) @Test public void testMarcStructure1() { List values; - assertEquals("$.datafield[?(@.tag == '016')][*]ind1", schema.getPathByLabel("016$ind1").getAbsoluteJsonPath()); + assertEquals("$.datafield[?(@.tag == '016')][*]ind1", schema.getPathByLabel("016$ind1").getAbsolutePath()); values = cache.get("$.datafield[?(@.tag == '016')]ind1"); assertEquals(1, values.size()); assertEquals(" ", values.get(0).getValue()); - JsonBranch branch = schema.getPathByLabel("016"); - String path = schema.getPathByLabel("016$ind1").getJsonPath(); - Object rawJsonFragment = cache.getFragment(branch.getJsonPath()); + DataElement branch = schema.getPathByLabel("016"); + String path = schema.getPathByLabel("016$ind1").getPath(); + Object rawJsonFragment = cache.getFragment(branch.getPath()); if (rawJsonFragment != null) { List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema); for (int i = 0, len = jsonFragments.size(); i < len; i++) { @@ -264,24 +264,24 @@ public void testMarcStructure() { List values; String subfieldPath = "$.subfield"; - for (JsonBranch branch : schema.getRootChildrenPaths()) { + for (DataElement branch : schema.getRootChildrenPaths()) { if (branch.isCollection()) { - Object rawJsonFragment = cache.getFragment(branch.getJsonPath()); + Object rawJsonFragment = cache.getFragment(branch.getPath()); if (rawJsonFragment != null) { List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema); for (int i = 0, len = jsonFragments.size(); i < len; i++) { Object jsonFragment = jsonFragments.get(i); - for (JsonBranch child : branch.getChildren()) { - if (child.getJsonPath().startsWith("$.subfield")) { + for (DataElement child : branch.getChildren()) { + if (child.getPath().startsWith("$.subfield")) { Object rawSubfieldFragment = cache.getFragment(subfieldPath); if (rawSubfieldFragment != null) { List subfieldFragment = Converter.jsonObjectToList(rawSubfieldFragment); for (int j = 0, subfieldLen = subfieldFragment.size(); j < subfieldLen; j++) { - values = cache.get(child.getJsonPath(), child.getJsonPath(), subfieldFragment.get(j)); + values = cache.get(child.getPath(), child.getPath(), subfieldFragment.get(j)); } } } else { - values = cache.get(child.getJsonPath(), child.getJsonPath(), jsonFragment); + values = cache.get(child.getPath(), child.getPath(), jsonFragment); if (fixedValues.containsKey(branch.getLabel())) { Map> instance = fixedValues.get(branch.getLabel()).get(i); if (instance.containsKey(child.getLabel())) { @@ -290,7 +290,7 @@ public void testMarcStructure() { "Label (%s) should not be null", child.getLabel()), values ); - assertEquals(child.getJsonPath(), + assertEquals(child.getPath(), instance.get(child.getLabel()).size(), values.size()); } else { @@ -304,9 +304,9 @@ public void testMarcStructure() { } } } else { - values = (List) cache.get(branch.getJsonPath()); + values = (List) cache.get(branch.getPath()); if (fixedValues.containsKey(branch.getLabel())) { - assertEquals(branch.getJsonPath(), + assertEquals(branch.getPath(), fixedValues.get(branch.getLabel()).size(), values.size()); // printValues(values, branch); } else { @@ -316,7 +316,7 @@ public void testMarcStructure() { } } - private void printValues(List values, JsonBranch branch) { + private void printValues(List values, DataElement branch) { if (values != null) for (XmlFieldInstance value : values) System.err.println(String.format("%s: '%s'", branch.getLabel(), value.getValue())); diff --git a/src/test/java/de/gwdg/metadataqa/api/util/SkippedEntitySelectorTest.java b/src/test/java/de/gwdg/metadataqa/api/util/SkippedEntitySelectorTest.java index 9b1de2f0..6a6239b3 100644 --- a/src/test/java/de/gwdg/metadataqa/api/util/SkippedEntitySelectorTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/util/SkippedEntitySelectorTest.java @@ -1,22 +1,16 @@ package de.gwdg.metadataqa.api.util; import de.gwdg.metadataqa.api.calculator.SkippedEntryChecker; -import de.gwdg.metadataqa.api.json.JsonBranch; -import de.gwdg.metadataqa.api.model.PathCacheFactory; +import de.gwdg.metadataqa.api.json.DataElement; import de.gwdg.metadataqa.api.model.XmlFieldInstance; -import de.gwdg.metadataqa.api.model.pathcache.CsvPathCache; import de.gwdg.metadataqa.api.model.pathcache.JsonPathCache; import de.gwdg.metadataqa.api.model.pathcache.PathCache; -import de.gwdg.metadataqa.api.schema.BaseSchema; -import de.gwdg.metadataqa.api.schema.CsvAwareSchema; -import de.gwdg.metadataqa.api.schema.Format; import de.gwdg.metadataqa.api.schema.Schema; import de.gwdg.metadataqa.api.schema.edm.EdmFullBeanSchema; import org.junit.Test; import java.io.IOException; import java.net.URISyntaxException; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -37,8 +31,8 @@ public void testIsCollectionSkippable() throws URISyntaxException, IOException { List skippableIds = Arrays.asList("/proxy/provider/2064125/Museu_ProvidedCHO_museum_digital_96__technical_number_"); var i = 0; - JsonBranch providerProxyBranch = schema.getCollectionPaths().get(1); - Object rawJsonFragment = cache.getFragment(providerProxyBranch.getJsonPath()); + DataElement providerProxyBranch = schema.getCollectionPaths().get(1); + Object rawJsonFragment = cache.getFragment(providerProxyBranch.getPath()); List jsonFragments = Converter.jsonObjectToList(rawJsonFragment, schema); Object jsonFragment = jsonFragments.get(i); assertTrue(selector.isCollectionSkippable(skippableIds, providerProxyBranch, i, cache, jsonFragment)); diff --git a/src/test/java/de/gwdg/metadataqa/api/xml/OaiPmhXPathTest.java b/src/test/java/de/gwdg/metadataqa/api/xml/XPathWrapperTest.java similarity index 78% rename from src/test/java/de/gwdg/metadataqa/api/xml/OaiPmhXPathTest.java rename to src/test/java/de/gwdg/metadataqa/api/xml/XPathWrapperTest.java index 79b52d21..ec8d9bf3 100644 --- a/src/test/java/de/gwdg/metadataqa/api/xml/OaiPmhXPathTest.java +++ b/src/test/java/de/gwdg/metadataqa/api/xml/XPathWrapperTest.java @@ -2,7 +2,7 @@ import de.gwdg.metadataqa.api.calculator.CalculatorFacade; import de.gwdg.metadataqa.api.configuration.MeasurementConfiguration; -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.schema.edm.EdmOaiPmhXmlSchema; import de.gwdg.metadataqa.api.schema.Schema; @@ -18,7 +18,7 @@ import static org.junit.Assert.assertEquals; -public class OaiPmhXPathTest { +public class XPathWrapperTest { private static Map prefixMap = new LinkedHashMap() {{ put("xsi", "http://www.w3.org/2001/XMLSchema-instance"); put("rdf", "http://www.w3.org/1999/02/22-rdf-syntax-ns#"); @@ -45,8 +45,8 @@ public class OaiPmhXPathTest { @Test public void testNamespaces() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); - XPath xpathEngine = oaiPmhXPath.getXpathEngine(); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); + XPath xpathEngine = xPathWrapper.getXpathEngine(); for (String prefix : prefixMap.keySet()) { String uri = prefixMap.get(prefix); @@ -57,9 +57,9 @@ public void testNamespaces() { @Test public void testValueAndLanguage() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); - List list = oaiPmhXPath.extractFieldInstanceList("//skos:prefLabel"); + List list = xPathWrapper.extractFieldInstanceList("//skos:prefLabel"); assertEquals(346, list.size()); assertEquals("Francis 'Frans' Smith", list.get(0).getValue()); @@ -74,9 +74,9 @@ public void testValueAndLanguage() { @Test public void testResource() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); - List list = oaiPmhXPath.extractFieldInstanceList("//rdaGr2:professionOrOccupation"); + List list = xPathWrapper.extractFieldInstanceList("//rdaGr2:professionOrOccupation"); assertEquals(5, list.size()); assertEquals("", list.get(0).getValue()); @@ -91,14 +91,14 @@ public void testResource() { @Test public void testProxy() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); - List list = oaiPmhXPath.extractFieldInstanceList( + List list = xPathWrapper.extractFieldInstanceList( "//ore:Proxy[edm:europeanaProxy/text() = 'false']" ); assertEquals(1, list.size()); - list = oaiPmhXPath.extractFieldInstanceList( + list = xPathWrapper.extractFieldInstanceList( "//ore:Proxy[edm:europeanaProxy/text() = 'true']" ); assertEquals(1, list.size()); @@ -106,26 +106,26 @@ public void testProxy() { @Test public void testDifferentContexts() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); List proxies = null; List fields = null; - proxies = oaiPmhXPath.extractNodes( + proxies = xPathWrapper.extractNodes( "//ore:Proxy[edm:europeanaProxy/text() = 'false']" ); assertEquals(1, proxies.size()); - fields = oaiPmhXPath.extractFieldInstanceList(proxies.get(0), "dcterms:temporal"); + fields = xPathWrapper.extractFieldInstanceList(proxies.get(0), "dcterms:temporal"); assertEquals(2, fields.size()); assertEquals("1968", fields.get(0).getValue()); assertEquals("Séc. 19-20", fields.get(1).getValue()); - proxies = oaiPmhXPath.extractNodes( + proxies = xPathWrapper.extractNodes( "//ore:Proxy[edm:europeanaProxy/text() = 'true']" ); assertEquals(1, proxies.size()); - fields = oaiPmhXPath.extractFieldInstanceList(proxies.get(0), "dcterms:temporal"); + fields = xPathWrapper.extractFieldInstanceList(proxies.get(0), "dcterms:temporal"); assertEquals(2, fields.size()); assertEquals("http://semium.org/time/19xx", fields.get(0).getResource()); assertEquals("http://semium.org/time/1968", fields.get(1).getResource()); @@ -133,9 +133,9 @@ public void testDifferentContexts() { @Test public void testTops() { - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); - List list = oaiPmhXPath.extractFieldInstanceList( + List list = xPathWrapper.extractFieldInstanceList( "//oai:header/oai:identifier" ); assertEquals(1, list.size()); @@ -143,13 +143,13 @@ public void testTops() { "http://data.europeana.eu/item/00101/2F29675EB2C8ADFFA488087DB15C5C479C95A2C3", list.get(0).getValue()); - list = oaiPmhXPath.extractFieldInstanceList("//oai:header/oai:setSpec"); + list = xPathWrapper.extractFieldInstanceList("//oai:header/oai:setSpec"); assertEquals(1, list.size()); assertEquals( "00101", list.get(0).getValue()); - list = oaiPmhXPath.extractFieldInstanceList("//ore:Aggregation[1]/edm:dataProvider[1]"); + list = xPathWrapper.extractFieldInstanceList("//ore:Aggregation[1]/edm:dataProvider[1]"); assertEquals(1, list.size()); assertEquals( "Fundação Calouste Gulbenkian - Portugal", @@ -176,17 +176,17 @@ public void testCalculator() throws IOException, URISyntaxException { } @Test - public void testJsonBranch() throws IOException, URISyntaxException { + public void testDataElement() throws IOException, URISyntaxException { Schema schema = new EdmOaiPmhXmlSchema(); - JsonBranch branch = schema.getPathByLabel("Concept"); - String path = branch.getJsonPath(); + DataElement branch = schema.getPathByLabel("Concept"); + String path = branch.getPath(); assertEquals("//skos:Concept", path); - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath( + XPathWrapper xPathWrapper = new XPathWrapper( FileUtils.readContentFromResource( "general/europeana-oai-pmh-92062-BibliographicResource_1000126015451.xml") ); - List attr = oaiPmhXPath.extractNodes("//skos:Concept[1]/@rdf:about"); + List attr = xPathWrapper.extractNodes("//skos:Concept[1]/@rdf:about"); assertEquals(1, attr.size()); assertEquals("http://data.europeana.eu/concept/base/106", attr.get(0).getNodeValue()); } @@ -197,10 +197,10 @@ public void testNamespaces_withCustomNS() { namespaces.put("xoai", "http://www.lyncode.com/xoai"); namespaces.put("foaf", "http://xmlns.com/foaf/0.1/"); - OaiPmhXPath.setXpathEngine(XpathEngineFactory.initializeEngine(namespaces)); + XPathWrapper.setXpathEngine(XpathEngineFactory.initializeEngine(namespaces)); - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); - XPath xpathEngine = oaiPmhXPath.getXpathEngine(); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); + XPath xpathEngine = xPathWrapper.getXpathEngine(); for (String prefix : prefixMap.keySet()) { String uri = prefixMap.get(prefix); @@ -220,10 +220,10 @@ public void testNamespaces_withCustomNS_setXpathEngine() { namespaces.put("xoai", "http://www.lyncode.com/xoai"); namespaces.put("foaf", "http://xmlns.com/foaf/0.1/"); - OaiPmhXPath.setXpathEngine(namespaces); + XPathWrapper.setXpathEngine(namespaces); - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); - XPath xpathEngine = oaiPmhXPath.getXpathEngine(); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); + XPath xpathEngine = xPathWrapper.getXpathEngine(); for (String prefix : prefixMap.keySet()) { String uri = prefixMap.get(prefix); @@ -240,9 +240,9 @@ public void testNamespaces_withCustomNS_setXpathEngine() { @Test public void testDisjunct() { String xpath = "//edm:Agent/skos:prefLabel|//edm:Agent/skos:altLabel"; - OaiPmhXPath oaiPmhXPath = new OaiPmhXPath(new File(inputFile)); + XPathWrapper xPathWrapper = new XPathWrapper(new File(inputFile)); - List list = oaiPmhXPath.extractFieldInstanceList(xpath); + List list = xPathWrapper.extractFieldInstanceList(xpath); list.stream().forEach(x -> System.err.printf("%s @%s\n", x.getValue(), x.getLanguage())); System.err.println(); }