33
44package com .microsoft .applicationinsights .agent .internal .profiler .config ;
55
6+ import com .azure .json .JsonSerializable ;
7+ import com .azure .json .JsonWriter ;
68import com .fasterxml .jackson .databind .util .StdDateFormat ;
7- import com .google .auto .value .AutoValue ;
89import com .microsoft .applicationinsights .alerting .aiconfig .AlertingConfig ;
10+ import java .io .IOException ;
911import java .text .ParseException ;
1012import java .util .Date ;
1113import java .util .List ;
1214import javax .annotation .Nullable ;
1315
14- @ AutoValue
15- public abstract class ProfilerConfiguration {
16+ public class ProfilerConfiguration implements JsonSerializable <ProfilerConfiguration > {
1617
1718 public static final Date DEFAULT_DATE ;
19+ private Date lastModified ;
20+ private boolean enabled ;
21+ private String collectionPlan ;
22+ private String cpuTriggerConfiguration ;
23+ private String memoryTriggerConfiguration ;
24+ private String defaultConfiguration ;
25+ private List <AlertingConfig .RequestTrigger > requestTriggerConfiguration ;
1826
1927 static {
2028 Date defaultDate ;
@@ -27,45 +35,94 @@ public abstract class ProfilerConfiguration {
2735 DEFAULT_DATE = defaultDate ;
2836 }
2937
30- public static ProfilerConfiguration create (
31- Date lastModified ,
32- boolean enabled ,
33- String collectionPlan ,
34- String cpuTriggerConfiguration ,
35- String memoryTriggerConfiguration ,
36- String defaultConfiguration ,
37- List <AlertingConfig .RequestTrigger > requestTriggerConfiguration ) {
38+ public boolean hasBeenConfigured () {
39+ return getLastModified ().compareTo (DEFAULT_DATE ) != 0 ;
40+ }
3841
39- return new AutoValue_ProfilerConfiguration (
40- lastModified ,
41- enabled ,
42- collectionPlan ,
43- cpuTriggerConfiguration ,
44- memoryTriggerConfiguration ,
45- defaultConfiguration ,
46- requestTriggerConfiguration );
42+ public Date getLastModified () {
43+ return lastModified ;
4744 }
4845
49- public boolean hasBeenConfigured () {
50- return getLastModified ().compareTo (DEFAULT_DATE ) != 0 ;
46+ public ProfilerConfiguration setLastModified (Date lastModified ) {
47+ this .lastModified = lastModified ;
48+ return this ;
5149 }
5250
53- public abstract Date getLastModified ();
51+ public boolean isEnabled () {
52+ return enabled ;
53+ }
5454
55- public abstract boolean isEnabled ();
55+ public ProfilerConfiguration setEnabled (boolean enabled ) {
56+ this .enabled = enabled ;
57+ return this ;
58+ }
5659
5760 @ Nullable
58- public abstract String getCollectionPlan ();
61+ public String getCollectionPlan () {
62+ return collectionPlan ;
63+ }
64+
65+ public ProfilerConfiguration setCollectionPlan (String collectionPlan ) {
66+ this .collectionPlan = collectionPlan ;
67+ return this ;
68+ }
5969
6070 @ Nullable
61- public abstract String getCpuTriggerConfiguration ();
71+ public String getCpuTriggerConfiguration () {
72+ return cpuTriggerConfiguration ;
73+ }
74+
75+ public ProfilerConfiguration setCpuTriggerConfiguration (String cpuTriggerConfiguration ) {
76+ this .cpuTriggerConfiguration = cpuTriggerConfiguration ;
77+ return this ;
78+ }
6279
6380 @ Nullable
64- public abstract String getMemoryTriggerConfiguration ();
81+ public String getMemoryTriggerConfiguration () {
82+ return memoryTriggerConfiguration ;
83+ }
84+
85+ public ProfilerConfiguration setMemoryTriggerConfiguration (String memoryTriggerConfiguration ) {
86+ this .memoryTriggerConfiguration = memoryTriggerConfiguration ;
87+ return this ;
88+ }
6589
6690 @ Nullable
67- public abstract String getDefaultConfiguration ();
91+ public String getDefaultConfiguration () {
92+ return defaultConfiguration ;
93+ }
94+
95+ public ProfilerConfiguration setDefaultConfiguration (String defaultConfiguration ) {
96+ this .defaultConfiguration = defaultConfiguration ;
97+ return this ;
98+ }
6899
69100 @ Nullable
70- public abstract List <AlertingConfig .RequestTrigger > getRequestTriggerConfiguration ();
101+ public List <AlertingConfig .RequestTrigger > getRequestTriggerConfiguration () {
102+ return requestTriggerConfiguration ;
103+ }
104+
105+ public ProfilerConfiguration setRequestTriggerConfiguration (
106+ List <AlertingConfig .RequestTrigger > requestTriggerConfiguration ) {
107+ this .requestTriggerConfiguration = requestTriggerConfiguration ;
108+ return this ;
109+ }
110+
111+ @ Override
112+ public JsonWriter toJson (JsonWriter jsonWriter ) throws IOException {
113+ jsonWriter .writeStartObject ();
114+ jsonWriter .writeLongField ("lastModified" , lastModified .getTime ());
115+ jsonWriter .writeBooleanField ("enabled" , enabled );
116+ jsonWriter .writeStringField ("collectionPlan" , collectionPlan );
117+ jsonWriter .writeStringField ("cpuTriggerConfiguration" , cpuTriggerConfiguration );
118+ jsonWriter .writeStringField ("memoryTriggerConfiguration" , memoryTriggerConfiguration );
119+ jsonWriter .writeStringField ("defaultConfiguration" , defaultConfiguration );
120+ jsonWriter .writeStartArray ("requestTriggerConfiguration" );
121+ for (AlertingConfig .RequestTrigger trigger : requestTriggerConfiguration ) {
122+ trigger .toJson (jsonWriter );
123+ }
124+ jsonWriter .writeEndArray ();
125+ jsonWriter .writeEndObject ();
126+ return jsonWriter ;
127+ }
71128}
0 commit comments