public void encode(Encoder encoder) throws IOException {
		if (joinRecord != null) {
			long logicalSize = size;
			long sizeSum = 0;
			for (Varnode vn : joinRecord) {
				sizeSum += vn.getSize();
			}
			if (sizeSum == size) {
				logicalSize = 0;
			}
			encode(encoder, joinRecord, logicalSize);
			return;
		}
		encoder.openElement(ELEM_ADDR);
		if (space != null) {
			encoder.writeSpace(ATTRIB_SPACE, space);
			encoder.writeUnsignedInteger(ATTRIB_OFFSET, offset);
			if (size != 0) {
				encoder.writeSignedInteger(ATTRIB_SIZE, size);
			}
		}
		encoder.closeElement(ELEM_ADDR);
	}
Encode this sized address as an {@code <addr>} element to the stream
@param encoder is the stream encoder
@throws IOException for errors in the underlying stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/pcode/AddressXML.java