diff --git a/pom.xml b/pom.xml index 4b499a8..5e5131c 100644 --- a/pom.xml +++ b/pom.xml @@ -32,7 +32,7 @@ scm:git:gitea@code-repo.d4science.org:D-Net/dhp-schemas.git scm:git:gitea@code-repo.d4science.org:D-Net/dhp-schemas.git https://code-repo.d4science.org/D-Net/dhp-schemas/ - dhp-schemas-2.9.23 + dhp-schemas-2.9.24 This module contains common schema classes meant to be used across the dnet-hadoop submodules diff --git a/src/main/java/eu/dnetlib/dhp/schema/common/ModelSupport.java b/src/main/java/eu/dnetlib/dhp/schema/common/ModelSupport.java index bf0eed1..1aa0d8f 100644 --- a/src/main/java/eu/dnetlib/dhp/schema/common/ModelSupport.java +++ b/src/main/java/eu/dnetlib/dhp/schema/common/ModelSupport.java @@ -158,6 +158,21 @@ public class ModelSupport { } } + /** + * Helper method: lookup relation inverse, given the direct relation encoding (case insensitive) + * @param encoding + * @return the relation inverse descriptor, throws @IllegalArgumentException when not found. + */ + public static RelationInverse findInverse(String encoding) { + return ModelSupport.relationInverseMap + .entrySet() + .stream() + .filter(r -> encoding.equalsIgnoreCase(r.getKey())) + .findFirst() + .map(r -> r.getValue()) + .orElseThrow(() -> new IllegalArgumentException("invalid relationship: " + encoding)); + } + /** * Helper method: fina a relation filtering by a relation name * @param relationName @@ -181,7 +196,7 @@ public class ModelSupport { * @return */ public static String rel(String relType, String subRelType, String relClass) { - return String.format("%s-%s-%s", relType, subRelType, relClass); + return String.format("%s_%s_%s", relType, subRelType, relClass); } private static final String schemeTemplate = "dnet:%s_%s_relations";