From: Robert Varga Date: Tue, 30 Jan 2018 21:26:29 +0000 (+0100) Subject: Cache group replacement pattern X-Git-Tag: release/nitrogen-sr2~3 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=7e56e933f289360906efc44a534948a7afe1305b;p=mdsal.git Cache group replacement pattern Rather than compiling it over and over again, compile it once. Change-Id: Id8699f42c081b06197b769f22539e918457b5298 Signed-off-by: Robert Varga (cherry picked from commit 73b562bedadd1fbdb1acd5991c39c20c2cc79ec6) --- diff --git a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java index d3f6bac81a..aa7ff2bbfb 100644 --- a/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java +++ b/binding/mdsal-binding-generator-impl/src/main/java/org/opendaylight/mdsal/binding/yang/types/TypeProviderImpl.java @@ -90,6 +90,7 @@ import org.slf4j.LoggerFactory; public final class TypeProviderImpl implements TypeProvider { private static final Logger LOG = LoggerFactory.getLogger(TypeProviderImpl.class); + private static final Pattern GROUPS_PATTERN = Pattern.compile("\\[(.*?)\\]"); private static final Pattern NUMBERS_PATTERN = Pattern.compile("[0-9]+\\z"); // Backwards compatibility: Union types used to be instantiated in YANG namespace, which is no longer @@ -261,8 +262,8 @@ public final class TypeProviderImpl implements TypeProvider { private boolean isLeafRefSelfReference(final LeafrefTypeDefinition leafref, final SchemaNode parentNode) { final SchemaNode leafRefValueNode; final RevisionAwareXPath leafRefXPath = leafref.getPathStatement(); - final RevisionAwareXPath leafRefStrippedXPath = new RevisionAwareXPathImpl(leafRefXPath.toString() - .replaceAll("\\[(.*?)\\]", ""), leafRefXPath.isAbsolute()); + final RevisionAwareXPath leafRefStrippedXPath = new RevisionAwareXPathImpl( + GROUPS_PATTERN.matcher(leafRefXPath.toString()).replaceAll(""), leafRefXPath.isAbsolute()); ///// skip leafrefs in augments - they're checked once augments are resolved final Iterator iterator = parentNode.getPath().getPathFromRoot().iterator();