From 7e56e933f289360906efc44a534948a7afe1305b Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Tue, 30 Jan 2018 22:26:29 +0100 Subject: [PATCH] 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) --- .../mdsal/binding/yang/types/TypeProviderImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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(); -- 2.36.6