From 28d6f7cda076e716ed70c120344a2486664ae552 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Thu, 23 Apr 2015 17:13:36 +0200 Subject: [PATCH] Bug 3051: Fixed pattern checks in generated DTOs Pattern checks in generated DTOs were generated as OR checks in case model type specified multiple patterns, but correct behaviour is to do AND. So in order string needs to verified against all patterns and match all of them. Change-Id: If82e282312c82dd71de79534c7fa599fcdcefab4 Signed-off-by: Tony Tkacik --- .../yangtools/sal/java/api/generator/ClassTemplate.xtend | 7 +------ .../yang/ietf/inet/types/rev100924/HostBuilderTest.java | 9 ++++----- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend index cc3a78809a..6699d50200 100644 --- a/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend +++ b/code-generator/binding-java-api-generator/src/main/java/org/opendaylight/yangtools/sal/java/api/generator/ClassTemplate.xtend @@ -290,15 +290,10 @@ class ClassTemplate extends BaseTemplate { «FOR c : consts» «IF c.name == TypeConstants.PATTERN_CONSTANT_NAME && c.value instanceof List» - boolean valid = false; for (Pattern p : patterns) { - if (p.matcher(_value).matches()) { - valid = true; - break; - } + «Preconditions.importedName».checkArgument(p.matcher(_value).matches(), "Supplied value \"%s\" does not match any of the permitted patterns %s", _value, «TypeConstants.PATTERN_CONSTANT_NAME»); } - «Preconditions.importedName».checkArgument(valid, "Supplied value \"%s\" does not match any of the permitted patterns %s", _value, «TypeConstants.PATTERN_CONSTANT_NAME»); «ENDIF» «ENDFOR» «ENDIF» diff --git a/model/ietf/ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev100924/HostBuilderTest.java b/model/ietf/ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev100924/HostBuilderTest.java index 1339fc06cf..d2259d006b 100644 --- a/model/ietf/ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev100924/HostBuilderTest.java +++ b/model/ietf/ietf-inet-types/src/test/java/org/opendaylight/yang/gen/v1/urn/ietf/params/xml/ns/yang/ietf/inet/types/rev100924/HostBuilderTest.java @@ -16,24 +16,23 @@ public class HostBuilderTest { @Test public void testGetDefaultInstanceIpv4() throws Exception { - Host host = HostBuilder.getDefaultInstance("127.0.0.1"); + final Host host = HostBuilder.getDefaultInstance("127.0.0.1"); assertEquals(new Host(new IpAddress(new Ipv4Address("127.0.0.1"))), host); } @Test public void testGetDefaultInstanceIpv6() throws Exception { - testIpv6("2001:db8:8s5a3:0:0:8a2e:370:7334"); - testIpv6("2001:db8:85a3::8a2e:370:7334"); + testIpv6("1234:5678:9abc:def1:2345:6789:abcd:ef12"); } private void testIpv6(final String ivp6string) { - Host host = HostBuilder.getDefaultInstance(ivp6string); + final Host host = HostBuilder.getDefaultInstance(ivp6string); assertEquals(new Host(new IpAddress(new Ipv6Address(ivp6string))), host); } @Test public void testGetDefaultInstanceDomain() throws Exception { - Host host = HostBuilder.getDefaultInstance("localhost"); + final Host host = HostBuilder.getDefaultInstance("localhost"); assertEquals(new Host(new DomainName("localhost")), host); } } \ No newline at end of file -- 2.36.6