public static DatatypeFilter restoreFilterXml(XmlPullParser parser) throws XmlParseException {
		DatatypeFilter filter;
		XmlElement elemId = parser.peek();
		String nm = elemId.getAttribute(ATTRIB_NAME.name());
		if (nm.equals(SizeRestrictedFilter.NAME)) {
			filter = new SizeRestrictedFilter();
		}
		else if (nm.equals(HomogeneousAggregate.NAME_FLOAT4)) {
			filter = new HomogeneousAggregate(HomogeneousAggregate.NAME_FLOAT4,
				PcodeDataTypeManager.TYPE_FLOAT, 4, 0, 0);
		}
		else {
			// If no other name matches, assume this is a decompiler metatype
			int meta = PcodeDataTypeManager.getMetatype(nm);
			filter = new MetaTypeFilter(meta);
		}
		filter.restoreXml(parser);
		return filter;
	}
Instantiate a filter from the given stream.
@param parser is the given stream decoder
@return the new data-type filter instance
@throws XmlParseException for problems reading the stream
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/model/lang/protorules/DatatypeFilter.java