admin
2021-09-17 a2c56bd6b79d2b8ca2c4c44a254ad2958fb72bca
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
/*
 * Copyright (c) Huawei Technologies Co., Ltd. 2019-2029. All rights reserved.
 */
 
package com.huawei.push.android;
 
import com.alibaba.fastjson.annotation.JSONField;
import com.huawei.push.util.ValidatorUtils;
 
import org.apache.commons.lang3.StringUtils;
 
/**
 * 功能描述
 *
 * @author l00282963
 * @since 2020-01-19
 */
public class Button {
    @JSONField(name = "name")
    private String name;
 
    @JSONField(name = "action_type")
    private Integer actionType;
 
    @JSONField(name = "intent_type")
    private Integer intentType;
 
    @JSONField(name = "intent")
    private String intent;
 
    @JSONField(name = "data")
    private String data;
 
    public String getName() {
        return name;
    }
 
    public Integer getActionType() {
        return actionType;
    }
 
    public Integer getIntentType() {
        return intentType;
    }
 
    public String getIntent() {
        return intent;
    }
 
    public String getData() {
        return data;
    }
 
 
    public Button(Builder builder) {
        this.name = builder.name;
        this.actionType = builder.actionType;
        this.intentType = builder.intentType;
        this.intent = builder.intent;
        this.data = builder.data;
    }
 
    public void check() {
        if (this.actionType != null && this.actionType == 4) {
            ValidatorUtils.checkArgument(StringUtils.isNotEmpty(this.data), "data is needed when actionType is 4");
        }
    }
 
    /**
     * builder
     */
    public static Builder builder() {
        return new Builder();
    }
 
    public static class Builder {
        @JSONField(name = "name")
        private String name;
 
        @JSONField(name = "actionType")
        private Integer actionType;
 
        @JSONField(name = "intentType")
        private Integer intentType;
 
        @JSONField(name = "intent")
        private String intent;
 
        @JSONField(name = "data")
        private String data;
 
        public Builder setName(String name) {
            this.name = name;
            return this;
        }
 
        public Builder setActionType(Integer actionType) {
            this.actionType = actionType;
            return this;
        }
 
        public Builder setIntentType(Integer intentType) {
            this.intentType = intentType;
            return this;
        }
 
        public Builder setIntent(String intent) {
            this.intent = intent;
            return this;
        }
 
        public Builder setData(String data) {
            this.data = data;
            return this;
        }
 
        public Button build() {
            return new Button(this);
        }
    }
}