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 62b69aa Add copyFrom method for complex data type. (#11)
62b69aa is described below
commit 62b69aa3e5abdef3ec7f6d1d458f9304c9a5aa87
Author: 彭勇升 pengys <[email protected]>
AuthorDate: Mon Oct 22 20:20:57 2018 +0800
Add copyFrom method for complex data type. (#11)
---
.../code-templates/IndicatorImplementor.ftl | 51 ++++++++++++++++++----
.../IndicatorImplementorExpected.java | 6 +--
2 files changed, 45 insertions(+), 12 deletions(-)
diff --git
a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
index 6f8240e..3245422 100644
--- a/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
+++ b/oal-parser/src/main/resources/code-templates/IndicatorImplementor.ftl
@@ -178,15 +178,26 @@ public class ${metricName}Indicator extends
${indicatorClassName} implements Ala
@Override
public Indicator toHour() {
${metricName}Indicator indicator = new ${metricName}Indicator();
- indicator.setTimeBucket(toTimeBucketInHour());
<#list fieldsFromSource as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInHour());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
<#list persistentFields as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInHour());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
return indicator;
@@ -195,15 +206,26 @@ public class ${metricName}Indicator extends
${indicatorClassName} implements Ala
@Override
public Indicator toDay() {
${metricName}Indicator indicator = new ${metricName}Indicator();
- indicator.setTimeBucket(toTimeBucketInDay());
<#list fieldsFromSource as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInDay());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
<#list persistentFields as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInDay());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
return indicator;
@@ -212,15 +234,26 @@ public class ${metricName}Indicator extends
${indicatorClassName} implements Ala
@Override
public Indicator toMonth() {
${metricName}Indicator indicator = new ${metricName}Indicator();
- indicator.setTimeBucket(toTimeBucketInMonth());
<#list fieldsFromSource as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInMonth());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
<#list persistentFields as field>
- <#if field.columnName != "time_bucket">
+ <#if field.columnName == "time_bucket">
+ indicator.setTimeBucket(toTimeBucketInMonth());
+ <#elseif field.typeName == "java.lang.String" || field.typeName == "long"
|| field.typeName == "int" || field.typeName == "double" || field.typeName ==
"float">
indicator.${field.fieldSetter}(this.${field.fieldGetter}());
+ <#else>
+ ${field.typeName} newValue = new ${field.typeName}();
+ newValue.copyFrom(this.${field.fieldGetter}());
+ indicator.${field.fieldSetter}(newValue);
</#if>
</#list>
return indicator;
diff --git
a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
index 76cf7c7..b4554c4 100644
---
a/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
+++
b/oal-parser/src/test/resources/expectedFiles/IndicatorImplementorExpected.java
@@ -116,11 +116,11 @@ public class ServiceAvgIndicator extends LongAvgIndicator
implements AlarmSuppor
@Override
public Indicator toHour() {
ServiceAvgIndicator indicator = new ServiceAvgIndicator();
- indicator.setTimeBucket(toTimeBucketInHour());
indicator.setEntityId(this.getEntityId());
indicator.setSummation(this.getSummation());
indicator.setCount(this.getCount());
indicator.setValue(this.getValue());
+ indicator.setTimeBucket(toTimeBucketInHour());
indicator.setStringField(this.getStringField());
return indicator;
}
@@ -128,11 +128,11 @@ public class ServiceAvgIndicator extends LongAvgIndicator
implements AlarmSuppor
@Override
public Indicator toDay() {
ServiceAvgIndicator indicator = new ServiceAvgIndicator();
- indicator.setTimeBucket(toTimeBucketInDay());
indicator.setEntityId(this.getEntityId());
indicator.setSummation(this.getSummation());
indicator.setCount(this.getCount());
indicator.setValue(this.getValue());
+ indicator.setTimeBucket(toTimeBucketInDay());
indicator.setStringField(this.getStringField());
return indicator;
}
@@ -140,11 +140,11 @@ public class ServiceAvgIndicator extends LongAvgIndicator
implements AlarmSuppor
@Override
public Indicator toMonth() {
ServiceAvgIndicator indicator = new ServiceAvgIndicator();
- indicator.setTimeBucket(toTimeBucketInMonth());
indicator.setEntityId(this.getEntityId());
indicator.setSummation(this.getSummation());
indicator.setCount(this.getCount());
indicator.setValue(this.getValue());
+ indicator.setTimeBucket(toTimeBucketInMonth());
indicator.setStringField(this.getStringField());
return indicator;
}