diff --git a/normalizer/src/main/java/org/biopax/paxtools/normalizer/Resolver.java b/normalizer/src/main/java/org/biopax/paxtools/normalizer/Resolver.java index 5aee70c4..e1a5109c 100644 --- a/normalizer/src/main/java/org/biopax/paxtools/normalizer/Resolver.java +++ b/normalizer/src/main/java/org/biopax/paxtools/normalizer/Resolver.java @@ -101,7 +101,7 @@ protected Resolver() { * * @param identifier internal identifier used by the data type * @param datatype name, synonym or URI of a data type - * @return "true" if the identifier follows the regular expression, "false" otherwise + * @return "true" when datatype is recognized, and identifier either matches the pattern or there's no pattern */ public static boolean checkRegExp(String identifier, String datatype) { Namespace dt = getNamespace(datatype); @@ -116,13 +116,8 @@ public static boolean checkRegExp(String identifier, String datatype) { identifier = identifier.replaceFirst(banana+dt.getBanana_peel(), ""); } - String dtPattern = dt.getPattern(); - if(StringUtils.isNotBlank(dtPattern)) { - return Pattern.compile(dtPattern).matcher(identifier).find(); - } else { - LOG.debug("Cannot check id: {} as regexp is undefined for: {}; return: false", identifier, dt.getPrefix()); - return false; - } + //return true when there is no regex pattern defined or the identifier matches + return (StringUtils.isNotBlank(dt.getPattern())) ? Pattern.compile(dt.getPattern()).matcher(identifier).find() : true; } @@ -202,7 +197,7 @@ public static String getURI(String name, String id) { */ public static String getCURIE(String name, String id) { Namespace ns = getNamespace(name, true); - if (ns != null) { + if (ns != null && StringUtils.isNotBlank(ns.getPattern())) { if (checkRegExp(id, name)) { String prefix = ns.getPrefix(); //remove "banana" and "peel" prefix from the identifier if any defined and present diff --git a/normalizer/src/test/java/org/biopax/paxtools/normalizer/ResolverTest.java b/normalizer/src/test/java/org/biopax/paxtools/normalizer/ResolverTest.java index 3ab1bdab..eedfb5e7 100644 --- a/normalizer/src/test/java/org/biopax/paxtools/normalizer/ResolverTest.java +++ b/normalizer/src/test/java/org/biopax/paxtools/normalizer/ResolverTest.java @@ -34,7 +34,8 @@ public final void checkRegExp() { () -> Assertions.assertTrue(Resolver.checkRegExp("MI:0000", MI)), //auto-ignores "MI:" () -> Assertions.assertTrue(Resolver.checkRegExp("0000", MI)), () -> Assertions.assertFalse(Resolver.checkRegExp("0000", "foo")), //no such collection - () -> Assertions.assertFalse(Resolver.checkRegExp("0000", "aaindex"))//aaindex no pattern + () -> Assertions.assertTrue(Resolver.checkRegExp("0000", "aaindex")),//aaindex no pattern + () -> Assertions.assertTrue(Resolver.checkRegExp("98346", "bind"))//no pattern ); }