[Java] Update auto-generated bindings to LDK 0.0.118
[ldk-java] / src / main / java / org / ldk / structs / ParsedOnionMessageContents.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 contents of an [`OnionMessage`] as read from the wire.
13  * 
14  * [`OnionMessage`]: crate::ln::msgs::OnionMessage
15  */
16 @SuppressWarnings("unchecked") // We correctly assign various generic arrays
17 public class ParsedOnionMessageContents extends CommonBase {
18         private ParsedOnionMessageContents(Object _dummy, long ptr) { super(ptr); }
19         @Override @SuppressWarnings("deprecation")
20         protected void finalize() throws Throwable {
21                 super.finalize();
22                 if (ptr != 0) { bindings.ParsedOnionMessageContents_free(ptr); }
23         }
24         static ParsedOnionMessageContents constr_from_ptr(long ptr) {
25                 bindings.LDKParsedOnionMessageContents raw_val = bindings.LDKParsedOnionMessageContents_ref_from_ptr(ptr);
26                 if (raw_val.getClass() == bindings.LDKParsedOnionMessageContents.Offers.class) {
27                         return new Offers(ptr, (bindings.LDKParsedOnionMessageContents.Offers)raw_val);
28                 }
29                 if (raw_val.getClass() == bindings.LDKParsedOnionMessageContents.Custom.class) {
30                         return new Custom(ptr, (bindings.LDKParsedOnionMessageContents.Custom)raw_val);
31                 }
32                 assert false; return null; // Unreachable without extending the (internal) bindings interface
33         }
34
35         /**
36          * A message related to BOLT 12 Offers.
37          */
38         public final static class Offers extends ParsedOnionMessageContents {
39                 public final org.ldk.structs.OffersMessage offers;
40                 private Offers(long ptr, bindings.LDKParsedOnionMessageContents.Offers obj) {
41                         super(null, ptr);
42                         long offers = obj.offers;
43                         org.ldk.structs.OffersMessage offers_hu_conv = org.ldk.structs.OffersMessage.constr_from_ptr(offers);
44                         if (offers_hu_conv != null) { offers_hu_conv.ptrs_to.add(this); };
45                         this.offers = offers_hu_conv;
46                 }
47         }
48         /**
49          * A custom onion message specified by the user.
50          */
51         public final static class Custom extends ParsedOnionMessageContents {
52                 public final org.ldk.structs.OnionMessageContents custom;
53                 private Custom(long ptr, bindings.LDKParsedOnionMessageContents.Custom obj) {
54                         super(null, ptr);
55                         long custom = obj.custom;
56                         OnionMessageContents ret_hu_conv = new OnionMessageContents(null, custom);
57                         if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
58                         this.custom = ret_hu_conv;
59                 }
60         }
61         long clone_ptr() {
62                 long ret = bindings.ParsedOnionMessageContents_clone_ptr(this.ptr);
63                 Reference.reachabilityFence(this);
64                 return ret;
65         }
66
67         /**
68          * Creates a copy of the ParsedOnionMessageContents
69          */
70         public ParsedOnionMessageContents clone() {
71                 long ret = bindings.ParsedOnionMessageContents_clone(this.ptr);
72                 Reference.reachabilityFence(this);
73                 if (ret >= 0 && ret <= 4096) { return null; }
74                 org.ldk.structs.ParsedOnionMessageContents ret_hu_conv = org.ldk.structs.ParsedOnionMessageContents.constr_from_ptr(ret);
75                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
76                 return ret_hu_conv;
77         }
78
79         /**
80          * Utility method to constructs a new Offers-variant ParsedOnionMessageContents
81          */
82         public static ParsedOnionMessageContents offers(org.ldk.structs.OffersMessage a) {
83                 long ret = bindings.ParsedOnionMessageContents_offers(a.ptr);
84                 Reference.reachabilityFence(a);
85                 if (ret >= 0 && ret <= 4096) { return null; }
86                 org.ldk.structs.ParsedOnionMessageContents ret_hu_conv = org.ldk.structs.ParsedOnionMessageContents.constr_from_ptr(ret);
87                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
88                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(a); };
89                 return ret_hu_conv;
90         }
91
92         /**
93          * Utility method to constructs a new Custom-variant ParsedOnionMessageContents
94          */
95         public static ParsedOnionMessageContents custom(org.ldk.structs.OnionMessageContents a) {
96                 long ret = bindings.ParsedOnionMessageContents_custom(a.ptr);
97                 Reference.reachabilityFence(a);
98                 if (ret >= 0 && ret <= 4096) { return null; }
99                 org.ldk.structs.ParsedOnionMessageContents ret_hu_conv = org.ldk.structs.ParsedOnionMessageContents.constr_from_ptr(ret);
100                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(ret_hu_conv); };
101                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(a); };
102                 return ret_hu_conv;
103         }
104
105         /**
106          * Constructs a new OnionMessageContents which calls the relevant methods on this_arg.
107          * This copies the `inner` pointer in this_arg and thus the returned OnionMessageContents must be freed before this_arg is
108          */
109         public OnionMessageContents as_OnionMessageContents() {
110                 long ret = bindings.ParsedOnionMessageContents_as_OnionMessageContents(this.ptr);
111                 Reference.reachabilityFence(this);
112                 if (ret >= 0 && ret <= 4096) { return null; }
113                 OnionMessageContents ret_hu_conv = new OnionMessageContents(null, ret);
114                 if (ret_hu_conv != null) { ret_hu_conv.ptrs_to.add(this); };
115                 return ret_hu_conv;
116         }
117
118         /**
119          * Serialize the ParsedOnionMessageContents object into a byte array which can be read by ParsedOnionMessageContents_read
120          */
121         public byte[] write() {
122                 byte[] ret = bindings.ParsedOnionMessageContents_write(this.ptr);
123                 Reference.reachabilityFence(this);
124                 return ret;
125         }
126
127 }