blob: e592867cd77a76012ed9bde173d6bef465f38f24 [file] [log] [blame]
// Copyright 2014 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
// This file is autogenerated by:
// mojo/public/tools/bindings/mojom_bindings_generator.py
// For:
// mojom/vanadium/discovery.mojom
//
package io.v.mojo.discovery;
public final class Advertisement extends org.chromium.mojo.bindings.Struct {
private static final int STRUCT_SIZE = 48;
private static final org.chromium.mojo.bindings.DataHeader[] VERSION_ARRAY = new org.chromium.mojo.bindings.DataHeader[] {new org.chromium.mojo.bindings.DataHeader(48, 0)};
private static final org.chromium.mojo.bindings.DataHeader DEFAULT_STRUCT_INFO = VERSION_ARRAY[0];
public static final int ID_LEN = (int) 16L;
public byte[] id;
public String interfaceName;
public String[] addresses;
public java.util.Map<String, String> attributes;
public java.util.Map<String, byte[]> attachments;
private Advertisement(int version) {
super(STRUCT_SIZE, version);
}
public Advertisement() {
this(0);
}
public static Advertisement deserialize(org.chromium.mojo.bindings.Message message) {
return decode(new org.chromium.mojo.bindings.Decoder(message));
}
@SuppressWarnings("unchecked")
public static Advertisement decode(org.chromium.mojo.bindings.Decoder decoder0) {
if (decoder0 == null) {
return null;
}
org.chromium.mojo.bindings.DataHeader mainDataHeader = decoder0.readAndValidateDataHeader(VERSION_ARRAY);
Advertisement result = new Advertisement(mainDataHeader.elementsOrVersion);
if (mainDataHeader.elementsOrVersion >= 0) {
result.id = decoder0.readBytes(8, org.chromium.mojo.bindings.BindingsHelper.ARRAY_NULLABLE, 16);
}
if (mainDataHeader.elementsOrVersion >= 0) {
result.interfaceName = decoder0.readString(16, false);
}
if (mainDataHeader.elementsOrVersion >= 0) {
org.chromium.mojo.bindings.Decoder decoder1 = decoder0.readPointer(24, false);
{
org.chromium.mojo.bindings.DataHeader si1 = decoder1.readDataHeaderForPointerArray(org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
result.addresses = new String[si1.elementsOrVersion];
for (int i1 = 0; i1 < si1.elementsOrVersion; ++i1) {
result.addresses[i1] = decoder1.readString(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i1, false);
}
}
}
if (mainDataHeader.elementsOrVersion >= 0) {
org.chromium.mojo.bindings.Decoder decoder1 = decoder0.readPointer(32, true);
if (decoder1 == null) {
result.attributes = null;
} else {
decoder1.readDataHeaderForMap();
String[] keys0;
String[] values0;
{
org.chromium.mojo.bindings.Decoder decoder2 = decoder1.readPointer(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE, false);
{
org.chromium.mojo.bindings.DataHeader si2 = decoder2.readDataHeaderForPointerArray(org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
keys0 = new String[si2.elementsOrVersion];
for (int i2 = 0; i2 < si2.elementsOrVersion; ++i2) {
keys0[i2] = decoder2.readString(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i2, false);
}
}
}
{
org.chromium.mojo.bindings.Decoder decoder2 = decoder1.readPointer(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE, false);
{
org.chromium.mojo.bindings.DataHeader si2 = decoder2.readDataHeaderForPointerArray(keys0.length);
values0 = new String[si2.elementsOrVersion];
for (int i2 = 0; i2 < si2.elementsOrVersion; ++i2) {
values0[i2] = decoder2.readString(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i2, false);
}
}
}
result.attributes = new java.util.HashMap<String, String>();
for (int index0 = 0; index0 < keys0.length; ++index0) {
result.attributes.put(keys0[index0], values0[index0]);
}
}
}
if (mainDataHeader.elementsOrVersion >= 0) {
org.chromium.mojo.bindings.Decoder decoder1 = decoder0.readPointer(40, true);
if (decoder1 == null) {
result.attachments = null;
} else {
decoder1.readDataHeaderForMap();
String[] keys0;
byte[][] values0;
{
org.chromium.mojo.bindings.Decoder decoder2 = decoder1.readPointer(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE, false);
{
org.chromium.mojo.bindings.DataHeader si2 = decoder2.readDataHeaderForPointerArray(org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
keys0 = new String[si2.elementsOrVersion];
for (int i2 = 0; i2 < si2.elementsOrVersion; ++i2) {
keys0[i2] = decoder2.readString(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i2, false);
}
}
}
{
org.chromium.mojo.bindings.Decoder decoder2 = decoder1.readPointer(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE, false);
{
org.chromium.mojo.bindings.DataHeader si2 = decoder2.readDataHeaderForPointerArray(keys0.length);
values0 = new byte[si2.elementsOrVersion][];
for (int i2 = 0; i2 < si2.elementsOrVersion; ++i2) {
values0[i2] = decoder2.readBytes(org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i2, org.chromium.mojo.bindings.BindingsHelper.NOTHING_NULLABLE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
}
}
}
result.attachments = new java.util.HashMap<String, byte[]>();
for (int index0 = 0; index0 < keys0.length; ++index0) {
result.attachments.put(keys0[index0], values0[index0]);
}
}
}
return result;
}
@SuppressWarnings("unchecked")
@Override
protected final void encode(org.chromium.mojo.bindings.Encoder encoder) {
org.chromium.mojo.bindings.Encoder encoder0 = encoder.getEncoderAtDataOffset(DEFAULT_STRUCT_INFO);
encoder0.encode(id, 8, org.chromium.mojo.bindings.BindingsHelper.ARRAY_NULLABLE, 16);
encoder0.encode(interfaceName, 16, false);
if (addresses == null) {
encoder0.encodeNullPointer(24, false);
} else {
org.chromium.mojo.bindings.Encoder encoder1 = encoder0.encodePointerArray(addresses.length, 24, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
for (int i0 = 0; i0 < addresses.length; ++i0) {
encoder1.encode(addresses[i0], org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i0, false);
}
}
if (attributes == null) {
encoder0.encodeNullPointer(32, true);
} else {
org.chromium.mojo.bindings.Encoder encoder1 = encoder0.encoderForMap(32);
int size0 = attributes.size();
String[] keys0 = new String[size0];
String[] values0 = new String[size0];
int index0 = 0;
for (java.util.Map.Entry<String, String> entry0 : attributes.entrySet()) {
keys0[index0] = entry0.getKey();
values0[index0] = entry0.getValue();
++index0;
}
{
org.chromium.mojo.bindings.Encoder encoder2 = encoder1.encodePointerArray(keys0.length, org.chromium.mojo.bindings.DataHeader.HEADER_SIZE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
for (int i1 = 0; i1 < keys0.length; ++i1) {
encoder2.encode(keys0[i1], org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i1, false);
}
}
{
org.chromium.mojo.bindings.Encoder encoder2 = encoder1.encodePointerArray(values0.length, org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
for (int i1 = 0; i1 < values0.length; ++i1) {
encoder2.encode(values0[i1], org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i1, false);
}
}
}
if (attachments == null) {
encoder0.encodeNullPointer(40, true);
} else {
org.chromium.mojo.bindings.Encoder encoder1 = encoder0.encoderForMap(40);
int size0 = attachments.size();
String[] keys0 = new String[size0];
byte[][] values0 = new byte[size0][];
int index0 = 0;
for (java.util.Map.Entry<String, byte[]> entry0 : attachments.entrySet()) {
keys0[index0] = entry0.getKey();
values0[index0] = entry0.getValue();
++index0;
}
{
org.chromium.mojo.bindings.Encoder encoder2 = encoder1.encodePointerArray(keys0.length, org.chromium.mojo.bindings.DataHeader.HEADER_SIZE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
for (int i1 = 0; i1 < keys0.length; ++i1) {
encoder2.encode(keys0[i1], org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i1, false);
}
}
{
org.chromium.mojo.bindings.Encoder encoder2 = encoder1.encodePointerArray(values0.length, org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
for (int i1 = 0; i1 < values0.length; ++i1) {
encoder2.encode(values0[i1], org.chromium.mojo.bindings.DataHeader.HEADER_SIZE + org.chromium.mojo.bindings.BindingsHelper.POINTER_SIZE * i1, org.chromium.mojo.bindings.BindingsHelper.NOTHING_NULLABLE, org.chromium.mojo.bindings.BindingsHelper.UNSPECIFIED_ARRAY_LENGTH);
}
}
}
}
/**
* @see Object#equals(Object)
*/
@Override
public boolean equals(Object object) {
if (object == this)
return true;
if (object == null)
return false;
if (getClass() != object.getClass())
return false;
Advertisement other = (Advertisement) object;
if (!java.util.Arrays.equals(this.id, other.id))
return false;
if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.interfaceName, other.interfaceName))
return false;
if (!java.util.Arrays.deepEquals(this.addresses, other.addresses))
return false;
if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.attributes, other.attributes))
return false;
if (!org.chromium.mojo.bindings.BindingsHelper.equals(this.attachments, other.attachments))
return false;
return true;
}
/**
* @see Object#hashCode()
*/
@Override
public int hashCode() {
final int prime = 31;
int result = prime + getClass().hashCode();
result = prime * result + java.util.Arrays.hashCode(id);
result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(interfaceName);
result = prime * result + java.util.Arrays.deepHashCode(addresses);
result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(attributes);
result = prime * result + org.chromium.mojo.bindings.BindingsHelper.hashCode(attachments);
return result;
}
}