StatsD_Types: Use 'present' qualifier; use template hierarchy

Change-Id: Ic9207e465bbee77d898d4d710a696656e43eac8d
diff --git a/library/StatsD_Types.ttcn b/library/StatsD_Types.ttcn
index 546e469..8938571 100644
--- a/library/StatsD_Types.ttcn
+++ b/library/StatsD_Types.ttcn
@@ -48,25 +48,18 @@
 	[0] := metric
 }
 
-template StatsDMetric tr_StatsDMetric(template MetricName name, template MetricValue val := ?, template MetricType mtype) := {
+template (present) StatsDMetric tr_StatsDMetric(template (present) MetricName name, template (present) MetricValue val := ?,
+						template (present) MetricType mtype) := {
 	name := name,
 	val := val,
 	mtype := mtype,
 	srate := *
 }
 
-template StatsDMetric tr_StatsDMetricCounter(template MetricName name, template MetricValue val := ?) := {
-	name := name,
-	val := val,
-	mtype := "c",
-	srate := *
-}
+template (present) StatsDMetric tr_StatsDMetricCounter(template (present) MetricName name, template (present) MetricValue val := ?) :=
+	tr_StatsDMetric(name, val, "c");
 
-template StatsDMetric tr_StatsDMetricGauge(template MetricName name, template MetricValue val := ?) := {
-	name := name,
-	val := val,
-	mtype := "g",
-	srate := *
-}
+template (present) StatsDMetric tr_StatsDMetricGauge(template (present) MetricName name, template (present) MetricValue val := ?) :=
+	tr_StatsDMetric(name, val, "g");
 
 } with { encode "TEXT" }