This is an automated email from the ASF dual-hosted git repository.

wusheng pushed a commit to branch master
in repository 
https://gitbox.apache.org/repos/asf/incubator-skywalking-oal-tool.git


The following commit(s) were added to refs/heads/master by this push:
     new 5275de8  Support new toDay/Hour/Month methods in code generation.
5275de8 is described below

commit 5275de862ac51d24774f9b767d112a1b0717fbbe
Author: Wu Sheng <[email protected]>
AuthorDate: Wed Sep 12 15:13:58 2018 +0800

    Support new toDay/Hour/Month methods in code generation.
---
 .../code-templates/IndicatorImplementor.ftl        | 39 ++++++++++++++++++++++
 .../IndicatorImplementorExpected.java              | 39 ++++++++++++++++++++++
 2 files changed, 78 insertions(+)

diff --git 
a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl 
b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index b88024c..2b2d841 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -149,6 +149,45 @@ public class ${metricName}Indicator extends 
${indicatorClassName} implements Ala
         return new AlarmMeta("${varName}", Scope.${sourceName}<#if 
(fieldsFromSource?size>0) >, <#list fieldsFromSource as 
field>${field.fieldName}<#if field_has_next>, </#if></#list></#if>);
     }
 
+    @Override
+    public Indicator toHour() {
+        ${metricName}Indicator indicator = new ${metricName}Indicator();
+        indicator.setTimeBucket(toTimeBucketInHour());
+<#list fieldsFromSource as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+<#list persistentFields as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+        return indicator;
+    }
+
+    @Override
+    public Indicator toDay() {
+        ${metricName}Indicator indicator = new ${metricName}Indicator();
+        indicator.setTimeBucket(toTimeBucketInDay());
+<#list fieldsFromSource as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+<#list persistentFields as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+        return indicator;
+    }
+
+    @Override
+    public Indicator toMonth() {
+        ${metricName}Indicator indicator = new ${metricName}Indicator();
+        indicator.setTimeBucket(toTimeBucketInMonth());
+<#list fieldsFromSource as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+<#list persistentFields as field>
+        indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+</#list>
+        return indicator;
+    }
+
     public static class Builder implements 
StorageBuilder<${metricName}Indicator> {
 
         @Override public Map<String, Object> data2Map(${metricName}Indicator 
storageData) {
diff --git 
a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java 
b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index f9fc4a6..be6ec2c 100644
--- 
a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++ 
b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -107,6 +107,45 @@ public class ServiceAvgIndicator extends LongAvgIndicator 
implements AlarmSuppor
         return new AlarmMeta("generate_indicator", Scope.Service, id);
     }
 
+    @Override
+    public Indicator toHour() {
+        ServiceAvgIndicator indicator = new ServiceAvgIndicator();
+        indicator.setTimeBucket(toTimeBucketInHour());
+        indicator.setId(this.getId());
+        indicator.setSummation(this.getSummation());
+        indicator.setCount(this.getCount());
+        indicator.setValue(this.getValue());
+        indicator.setTimeBucket(this.getTimeBucket());
+        indicator.setStringField(this.getStringField());
+        return indicator;
+    }
+
+    @Override
+    public Indicator toDay() {
+        ServiceAvgIndicator indicator = new ServiceAvgIndicator();
+        indicator.setTimeBucket(toTimeBucketInDay());
+        indicator.setId(this.getId());
+        indicator.setSummation(this.getSummation());
+        indicator.setCount(this.getCount());
+        indicator.setValue(this.getValue());
+        indicator.setTimeBucket(this.getTimeBucket());
+        indicator.setStringField(this.getStringField());
+        return indicator;
+    }
+
+    @Override
+    public Indicator toMonth() {
+        ServiceAvgIndicator indicator = new ServiceAvgIndicator();
+        indicator.setTimeBucket(toTimeBucketInMonth());
+        indicator.setId(this.getId());
+        indicator.setSummation(this.getSummation());
+        indicator.setCount(this.getCount());
+        indicator.setValue(this.getValue());
+        indicator.setTimeBucket(this.getTimeBucket());
+        indicator.setStringField(this.getStringField());
+        return indicator;
+    }
+
     public static class Builder implements StorageBuilder<ServiceAvgIndicator> 
{
 
         @Override public Map<String, Object> data2Map(ServiceAvgIndicator 
storageData) {

Reply via email to