// Code generated by gobind. DO NOT EDIT.

// Java class io.nekohasekai.libbox.WIFIState is a proxy for talking to a Go program.
//
//   autogenerated by gobind -lang=java -javapkg=io.nekohasekai github.com/sagernet/sing-box/experimental/libbox
package io.nekohasekai.libbox;

import go.Seq;

public final class WIFIState implements Seq.Proxy {
	static { Libbox.touch(); }
	
	public final int refnum;
	
	@Override public final int incRefnum() {
	      Seq.incGoRef(refnum, this);
	      return refnum;
	}
	
	public WIFIState(String wifiSSID, String wifiBSSID) {
		this.refnum = __NewWIFIState(wifiSSID, wifiBSSID);
		Seq.trackGoRef(refnum, this);
	}
	
	private static native int __NewWIFIState(String wifiSSID, String wifiBSSID);
	
	WIFIState(int refnum) { this.refnum = refnum; Seq.trackGoRef(refnum, this); }
	
	public final native String getSSID();
	public final native void setSSID(String v);
	
	public final native String getBSSID();
	public final native void setBSSID(String v);
	
	@Override public boolean equals(Object o) {
		if (o == null || !(o instanceof WIFIState)) {
		    return false;
		}
		WIFIState that = (WIFIState)o;
		String thisSSID = getSSID();
		String thatSSID = that.getSSID();
		if (thisSSID == null) {
			if (thatSSID != null) {
			    return false;
			}
		} else if (!thisSSID.equals(thatSSID)) {
		    return false;
		}
		String thisBSSID = getBSSID();
		String thatBSSID = that.getBSSID();
		if (thisBSSID == null) {
			if (thatBSSID != null) {
			    return false;
			}
		} else if (!thisBSSID.equals(thatBSSID)) {
		    return false;
		}
		return true;
	}
	
	@Override public int hashCode() {
	    return java.util.Arrays.hashCode(new Object[] {getSSID(), getBSSID()});
	}
	
	@Override public String toString() {
		StringBuilder b = new StringBuilder();
		b.append("WIFIState").append("{");
		b.append("SSID:").append(getSSID()).append(",");
		b.append("BSSID:").append(getBSSID()).append(",");
		return b.append("}").toString();
	}
}

