ETSI's Bug Tracker - Part 01: TTCN-3 Core Language
View Issue Details

ID | Project | Category | View Status | Date Submitted | Last Update
0005487 | Part 01: TTCN-3 Core Language | New Feature | public | 17-03-2010 17:42 | 25-03-2010 21:20

Reporter | Gyorgy Rethy |
Assigned To | Ina Schieferdecker |
Priority | normal | Severity | feature | Reproducibility | always
Status | closed | Resolution | fixed |
Platform |  | OS |  | OS Version |
Product Version | v4.1.1 (published 2009-06) |
Target Version | v4.3.1 (published 2011-06) | Fixed in Version | v4.2.1 (published 2010-07) |
Clause Reference(s) | C.31
Source (company - Author) | L.M. Ericsson

Summary | 0005487: Extend ispresent() to all templates

Description

Currently ispresent is allowed for record and set FIELDs only. To increase the usability of this predefined function it should be allowed to templates of any type, i.e. return false if the template is "omit", true otherwise except "*" or xyz ifpresent.
In the two latter cases ispresent shall cause an error. This could be re-discussed, either defining other means allowing checking if a template or template field is "*" or ~ ifpresent or define a false or true behaviour of ifpresent().
The issue popped up during a TTCN-3 library development; use case:
public function f_omitPar(
in template ASP_TelnetPortParameters pl_par := omit,
) runs on CT {
// It should be checked here if a value/matching is passed in
// or the default value is implicitly assigned
if (not ispresent(pl_par)){
// ^ ^ but this is not allowed
log("Warning");
}
}

Steps To Reproduce |
Additional Information |
Tags | No tags attached.
Relationships |
Attached Files | CR5487_v1.doc (39,936) 25-03-2010 14:18 http://oldforge.etsi.org/mantis/file_download.php?file_id=2368&type=bug CR5487_v2.doc (44,032) 25-03-2010 14:47 http://oldforge.etsi.org/mantis/file_download.php?file_id=2371&type=bug

Issue History
Date Modified | Username | Field | Change
17-03-2010 17:42 | Gyorgy Rethy | New Issue |
17-03-2010 17:42 | Gyorgy Rethy | Status | new => assigned
17-03-2010 17:42 | Gyorgy Rethy | Assigned To | => Ina Schieferdecker
17-03-2010 17:42 | Gyorgy Rethy | Clause Reference(s) | => C.31
17-03-2010 17:42 | Gyorgy Rethy | Source (company - Author) | => L.M. Ericsson
18-03-2010 11:51 | Gyorgy Rethy | Assigned To | Ina Schieferdecker =>
18-03-2010 11:51 | Gyorgy Rethy | Status | assigned => new
19-03-2010 07:42 | Gyorgy Rethy | Description Updated |
22-03-2010 16:24 | Gyorgy Rethy | Severity | minor => feature
22-03-2010 16:24 | Gyorgy Rethy | Target Version | => Edition 4.3.1 (not yet published)
23-03-2010 12:35 | Gyorgy Rethy | Assigned To | => Jacob Wieland - Spirent
23-03-2010 12:35 | Gyorgy Rethy | Status | new => assigned
24-03-2010 08:38 | Jacob Wieland - Spirent | Note Added: 0009272 |
25-03-2010 09:16 | Gyorgy Rethy | Note Added: 0009296 |
25-03-2010 09:16 | Gyorgy Rethy | Note Added: 0009297 |
25-03-2010 09:19 | Gyorgy Rethy | Note Deleted: 0009297 |
25-03-2010 14:18 | Jacob Wieland - Spirent | File Added: CR5487_v1.doc |
25-03-2010 14:18 | Jacob Wieland - Spirent | Note Added: 0009307 |
25-03-2010 14:19 | Jacob Wieland - Spirent | Status | assigned => feedback
25-03-2010 14:25 | Gyorgy Rethy | Assigned To | Jacob Wieland - Spirent => Gyorgy Rethy
25-03-2010 14:25 | Gyorgy Rethy | Status | feedback => assigned
25-03-2010 14:47 | Gyorgy Rethy | File Added: CR5487_v2.doc |
25-03-2010 14:49 | Gyorgy Rethy | Note Added: 0009309 |
25-03-2010 14:49 | Gyorgy Rethy | Assigned To | Gyorgy Rethy => Jacob Wieland - Spirent
25-03-2010 14:58 | Jacob Wieland - Spirent | Assigned To | Jacob Wieland - Spirent => Ina Schieferdecker
25-03-2010 15:28 | Gyorgy Rethy | Status | assigned => resolved
25-03-2010 15:28 | Gyorgy Rethy | Resolution | open => fixed
25-03-2010 21:20 | Ina Schieferdecker | Status | resolved => closed
25-03-2010 21:20 | Ina Schieferdecker | Fixed in Version | => Edition 4.2.1 (not yet published)

Notes

(0009272)
Jacob Wieland - Spirent
24-03-2010 08:38

For the simple case of deciding whether or not a template parameter can be assigned to a non-optional template field, ispresent() should be changed that it works on any template and the semantics should be that it returns true in the same cases as if the template paramter would be declared with the (present) restriction. I.e. if you have template(present) x, then ifpresent(x) always returns true. For all templates which cannot be used as template(present), ifpresent() would return false.
This would harmonize the ispresent() function and the present restriction, so it is an easily understandable semantics.
If more powerful querying mechanisms for the contents of templates are really needed in any real-world scenarios for goals which cannot be reached by other existing means, these should be presented so that we can come up with the necessary solutions for these problems.

(0009296)
Gyorgy Rethy
25-03-2010 09:16

Discussion on 24th March: - Agreed: extend the isptresent() as proposed by Jacob in this CR. - For a more generic solution to check template/template field content a convincing use case is needed. Therefore this CR will be closed when the text to extend ispresent() is agreed and implemented and for any more generic feature a new CR would be needed.

(0009307)
Jacob Wieland - Spirent
25-03-2010 14:18

uploaded CR proposal

(0009309)
Gyorgy Rethy
25-03-2010 14:49

CR5487_v2.doc: only editorial amendments, no technical change. If you agree, (first) assign to Ina, (secondly) set state to Resolved (in Resolved state CRs cannot be assigned to another person)