// Code generated by go run gob_gen.go; DO NOT EDIT.

package java

import (
	"bytes"
	"github.com/google/blueprint/gobtools"
)

func init() {
	JarJarProviderDataGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(JarJarProviderData) })
	BaseJarJarProviderDataGobRegId = gobtools.RegisterType(func() gobtools.CustomDec { return new(BaseJarJarProviderData) })
}

func (r JarJarProviderData) Encode(ctx gobtools.EncContext, buf *bytes.Buffer) error {
	var err error

	if r.Rename == nil {
		if err = gobtools.EncodeSimple(buf, int32(-1)); err != nil {
			return err
		}
	} else {
		if err = gobtools.EncodeSimple(buf, int32(len(r.Rename))); err != nil {
			return err
		}
		for k, v := range r.Rename {
			if err = gobtools.EncodeString(buf, k); err != nil {
				return err
			}
			if err = gobtools.EncodeString(buf, v); err != nil {
				return err
			}
		}
	}
	return err
}

func (r *JarJarProviderData) Decode(ctx gobtools.EncContext, buf *bytes.Reader) error {
	var err error

	var val1 int32
	err = gobtools.DecodeSimple[int32](buf, &val1)
	if err != nil {
		return err
	}
	if val1 != -1 {
		r.Rename = make(map[string]string, val1)
		for val2 := 0; val2 < int(val1); val2++ {
			var k string
			var v string
			err = gobtools.DecodeString(buf, &k)
			if err != nil {
				return err
			}
			err = gobtools.DecodeString(buf, &v)
			if err != nil {
				return err
			}
			r.Rename[k] = v
		}
	}

	return err
}

var JarJarProviderDataGobRegId int16

func (r JarJarProviderData) GetTypeId() int16 {
	return JarJarProviderDataGobRegId
}

func (r BaseJarJarProviderData) Encode(ctx gobtools.EncContext, buf *bytes.Buffer) error {
	var err error

	if err = r.JarJarProviderData.Encode(ctx, buf); err != nil {
		return err
	}
	return err
}

func (r *BaseJarJarProviderData) Decode(ctx gobtools.EncContext, buf *bytes.Reader) error {
	var err error

	if err = r.JarJarProviderData.Decode(ctx, buf); err != nil {
		return err
	}

	return err
}

var BaseJarJarProviderDataGobRegId int16

func (r BaseJarJarProviderData) GetTypeId() int16 {
	return BaseJarJarProviderDataGobRegId
}
