[MDSAL-351] Subclassed type wrappers fail to check restrictions Created: 18/Jun/18 Updated: 27/Jun/18 Resolved: 27/Jun/18 |
|
| Status: | Resolved |
| Project: | mdsal |
| Component/s: | Binding codegen |
| Affects Version/s: | None |
| Fix Version/s: | Fluorine |
| Type: | Bug | Priority: | Medium |
| Reporter: | Robert Varga | Assignee: | Robert Varga |
| Resolution: | Done | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Description |
|
Given:
typedef ipv4-address {
type string {
pattern
'(([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}'
+ '([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'
+ '(%[\p{N}\p{L}]+)?';
}
}
typedef ipv4-address-no-zone {
type inet:ipv4-address {
pattern '[0-9\.]*';
}
}
we end up with:
@ConstructorProperties("value") public Ipv4AddressNoZone(String _value) { super(_value); Objects.requireNonNull(_value, "Supplied value may not be null"); CodeHelpers.checkPattern(_value, patterns, regexes); } /** * Creates a copy from Source Object. * * @param source Source object */ public Ipv4AddressNoZone(Ipv4AddressNoZone source) { super(source); } /** * Creates a new instance from Ipv4Address * * @param source Source object */ public Ipv4AddressNoZone(Ipv4Address source) { super(source); } note how the final constructor fails to perform additional checks required to comply with the argument. This needs to be rectified.
|