exportPackageDesc.setInclude(readString(in, false)); exportPackageDesc.setExclude(readString(in, false));
	private ExportPackageDescriptionImpl readExportPackageDesc(DataInputStream in) throws IOException {		byte tag = readTag(in);		if (tag == NULL)			return null;		if (tag == INDEX)			return (ExportPackageDescriptionImpl) getFromObjectTable(in.readInt());		ExportPackageDescriptionImpl exportPackageDesc = new ExportPackageDescriptionImpl();		int tableIndex = in.readInt();		addToObjectTable(exportPackageDesc, tableIndex);		exportPackageDesc.setTableIndex(tableIndex);		readBaseDescription(exportPackageDesc, in);		exportPackageDesc.setInclude(readString(in, false));		exportPackageDesc.setExclude(readString(in, false));		exportPackageDesc.setRoot(in.readBoolean());		int attrCount = in.readInt();		if (attrCount > 0) {			HashMap attributes = new HashMap(attrCount);			for (int i = 0; i < attrCount; i++)				attributes.put(readString(in, false), readString(in, false));			exportPackageDesc.setAttributes(attributes);		}		int mandatoryCount = in.readInt();		if (mandatoryCount > 0) {			String[] mandatory = new String[mandatoryCount];			for (int i = 0; i < mandatoryCount; i++)				mandatory[i] = readString(in, false);			exportPackageDesc.setMandatory(mandatory);		}		int usesCount = in.readInt();		if (usesCount > 0) {			String[] uses = new String[usesCount];			for (int i = 0; i < usesCount; i++)				uses[i] = readString(in, false);			exportPackageDesc.setUses(uses);		}		return exportPackageDesc;	}