Update auto-updated Java files
[ldk-java] / src / main / java / org / ldk / structs / UnsignedNodeAnnouncement.java
1 package org.ldk.structs;
2
3 import org.ldk.impl.bindings;
4 import org.ldk.enums.*;
5 import org.ldk.util.*;
6 import java.util.Arrays;
7 import java.lang.ref.Reference;
8 import javax.annotation.Nullable;
9
10
11 /**
12  * The unsigned part of a node_announcement
13  */
14 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
15 public class UnsignedNodeAnnouncement extends CommonBase {
16         UnsignedNodeAnnouncement(Object _dummy, long ptr) { super(ptr); }
17         @Override @SuppressWarnings("deprecation")
18         protected void finalize() throws Throwable {
19                 super.finalize();
20                 if (ptr != 0) { bindings.UnsignedNodeAnnouncement_free(ptr); }
21         }
22
23         /**
24          * The advertised features
25          */
26         public NodeFeatures get_features() {
27                 long ret = bindings.UnsignedNodeAnnouncement_get_features(this.ptr);
28                 Reference.reachabilityFence(this);
29                 if (ret >= 0 && ret <= 4096) { return null; }
30                 NodeFeatures ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new NodeFeatures(null, ret); }
31                 ret_hu_conv.ptrs_to.add(this);
32                 return ret_hu_conv;
33         }
34
35         /**
36          * The advertised features
37          */
38         public void set_features(NodeFeatures val) {
39                 bindings.UnsignedNodeAnnouncement_set_features(this.ptr, val == null ? 0 : val.ptr & ~1);
40                 Reference.reachabilityFence(this);
41                 Reference.reachabilityFence(val);
42         }
43
44         /**
45          * A strictly monotonic announcement counter, with gaps allowed
46          */
47         public int get_timestamp() {
48                 int ret = bindings.UnsignedNodeAnnouncement_get_timestamp(this.ptr);
49                 Reference.reachabilityFence(this);
50                 return ret;
51         }
52
53         /**
54          * A strictly monotonic announcement counter, with gaps allowed
55          */
56         public void set_timestamp(int val) {
57                 bindings.UnsignedNodeAnnouncement_set_timestamp(this.ptr, val);
58                 Reference.reachabilityFence(this);
59                 Reference.reachabilityFence(val);
60         }
61
62         /**
63          * The node_id this announcement originated from (don't rebroadcast the node_announcement back
64          * to this node).
65          */
66         public byte[] get_node_id() {
67                 byte[] ret = bindings.UnsignedNodeAnnouncement_get_node_id(this.ptr);
68                 Reference.reachabilityFence(this);
69                 return ret;
70         }
71
72         /**
73          * The node_id this announcement originated from (don't rebroadcast the node_announcement back
74          * to this node).
75          */
76         public void set_node_id(byte[] val) {
77                 bindings.UnsignedNodeAnnouncement_set_node_id(this.ptr, InternalUtils.check_arr_len(val, 33));
78                 Reference.reachabilityFence(this);
79                 Reference.reachabilityFence(val);
80         }
81
82         /**
83          * An RGB color for UI purposes
84          */
85         public byte[] get_rgb() {
86                 byte[] ret = bindings.UnsignedNodeAnnouncement_get_rgb(this.ptr);
87                 Reference.reachabilityFence(this);
88                 return ret;
89         }
90
91         /**
92          * An RGB color for UI purposes
93          */
94         public void set_rgb(byte[] val) {
95                 bindings.UnsignedNodeAnnouncement_set_rgb(this.ptr, InternalUtils.check_arr_len(val, 3));
96                 Reference.reachabilityFence(this);
97                 Reference.reachabilityFence(val);
98         }
99
100         /**
101          * An alias, for UI purposes.  This should be sanitized before use.  There is no guarantee
102          * of uniqueness.
103          */
104         public byte[] get_alias() {
105                 byte[] ret = bindings.UnsignedNodeAnnouncement_get_alias(this.ptr);
106                 Reference.reachabilityFence(this);
107                 return ret;
108         }
109
110         /**
111          * An alias, for UI purposes.  This should be sanitized before use.  There is no guarantee
112          * of uniqueness.
113          */
114         public void set_alias(byte[] val) {
115                 bindings.UnsignedNodeAnnouncement_set_alias(this.ptr, InternalUtils.check_arr_len(val, 32));
116                 Reference.reachabilityFence(this);
117                 Reference.reachabilityFence(val);
118         }
119
120         /**
121          * List of addresses on which this node is reachable
122          */
123         public void set_addresses(NetAddress[] val) {
124                 bindings.UnsignedNodeAnnouncement_set_addresses(this.ptr, val != null ? Arrays.stream(val).mapToLong(val_conv_12 -> val_conv_12.ptr).toArray() : null);
125                 Reference.reachabilityFence(this);
126                 Reference.reachabilityFence(val);
127         }
128
129         long clone_ptr() {
130                 long ret = bindings.UnsignedNodeAnnouncement_clone_ptr(this.ptr);
131                 Reference.reachabilityFence(this);
132                 return ret;
133         }
134
135         /**
136          * Creates a copy of the UnsignedNodeAnnouncement
137          */
138         public UnsignedNodeAnnouncement clone() {
139                 long ret = bindings.UnsignedNodeAnnouncement_clone(this.ptr);
140                 Reference.reachabilityFence(this);
141                 if (ret >= 0 && ret <= 4096) { return null; }
142                 UnsignedNodeAnnouncement ret_hu_conv = null; if (ret < 0 || ret > 4096) { ret_hu_conv = new UnsignedNodeAnnouncement(null, ret); }
143                 ret_hu_conv.ptrs_to.add(this);
144                 return ret_hu_conv;
145         }
146
147         /**
148          * Serialize the UnsignedNodeAnnouncement object into a byte array which can be read by UnsignedNodeAnnouncement_read
149          */
150         public byte[] write() {
151                 byte[] ret = bindings.UnsignedNodeAnnouncement_write(this.ptr);
152                 Reference.reachabilityFence(this);
153                 return ret;
154         }
155
156         /**
157          * Read a UnsignedNodeAnnouncement from a byte array, created by UnsignedNodeAnnouncement_write
158          */
159         public static Result_UnsignedNodeAnnouncementDecodeErrorZ read(byte[] ser) {
160                 long ret = bindings.UnsignedNodeAnnouncement_read(ser);
161                 Reference.reachabilityFence(ser);
162                 if (ret >= 0 && ret <= 4096) { return null; }
163                 Result_UnsignedNodeAnnouncementDecodeErrorZ ret_hu_conv = Result_UnsignedNodeAnnouncementDecodeErrorZ.constr_from_ptr(ret);
164                 return ret_hu_conv;
165         }
166
167 }