	bytesNull    []byte
	charsNull    []uint16
	doublesNull  []float64
	shortsNull   []int16
	floatsNull   []float32
	intsNull     []int32
	longsNull    []int64
	stringsNull  []string
}

func (*aPortable) ClassID() int32 {
	return portableClassID
}

func (*aPortable) FactoryID() int32 {
	return portableFactoryID
}

func (p *aPortable) WritePortable(writer serialization.PortableWriter) error {
	writer.WriteBool("bool", p.bool)
	writer.WriteByte("b", p.b)
	writer.WriteUInt16("c", p.c)
	writer.WriteFloat64("d", p.d)
	writer.WriteInt16("s", p.s)
	writer.WriteFloat32("f", p.f)
	writer.WriteInt32("i", p.i)
	writer.WriteInt64("l", p.l)
	writer.WriteUTF("str", p.str)
	if p != nil {
		writer.WritePortable("p", p)
	} else {
		writer.WriteNilPortable("p", portableFactoryID, portableClassID)
	}
	writer.WriteBoolArray("booleans", p.booleans)
	writer.WriteByteArray("bs", p.bytes)
	writer.WriteUInt16Array("cs", p.chars)
	writer.WriteFloat64Array("ds", p.doubles)
	writer.WriteInt16Array("ss", p.shorts)
	writer.WriteFloat32Array("fs", p.floats)
	writer.WriteInt32Array("is", p.ints)
	writer.WriteInt64Array("ls", p.longs)
	writer.WriteUTFArray("strs", p.strings)
	writer.WritePortableArray("ps", p.portables)

	writer.WriteBoolArray("booleansNull", p.booleansNull)
	writer.WriteByteArray("bsNull", p.bytesNull)
	writer.WriteUInt16Array("csNull", p.charsNull)
	writer.WriteFloat64Array("dsNull", p.doublesNull)
	writer.WriteInt16Array("ssNull", p.shortsNull)
	writer.WriteFloat32Array("fsNull", p.floatsNull)
	writer.WriteInt32Array("isNull", p.intsNull)
	writer.WriteInt64Array("lsNull", p.longsNull)
	writer.WriteUTFArray("strsNull", p.stringsNull)

	return nil
}

func (p *aPortable) ReadPortable(reader serialization.PortableReader) error {
	p.bool = reader.ReadBool("bool")
	p.b = reader.ReadByte("b")
	p.c = reader.ReadUInt16("c")
	p.d = reader.ReadFloat64("d")
	p.s = reader.ReadInt16("s")
	p.f = reader.ReadFloat32("f")
	p.i = reader.ReadInt32("i")
	p.l = reader.ReadInt64("l")
	p.str = reader.ReadUTF("str")
	p.p = reader.ReadPortable("p")

	p.