public static TypePattern read(DataInputStream s, ISourceContext context) throws IOException { byte version = s.readByte(); if (version > VERSION) { throw new BCException("WildTypePattern was written by a more recent version of AspectJ, cannot read"); } int len = s.readShort(); NamePattern[] namePatterns = new NamePattern[len]; for (int i=0; i < len; i++) { namePatterns[i] = NamePattern.read(s); } boolean includeSubtypes = s.readBoolean(); int dim = s.readInt(); boolean varArg = s.readBoolean(); WildTypePattern ret = new WildTypePattern(namePatterns, includeSubtypes, dim,varArg); ret.knownMatches = FileUtil.readStringArray(s); ret.importedPrefixes = FileUtil.readStringArray(s); ret.readLocation(context, s); ret.setAnnotationTypePattern(AnnotationTypePattern.read(s,context)); return ret; }
public static TypePattern read(VersionedDataInputStream s, ISourceContext context) throws IOException { if (s.getMajorVersion()>=AjAttribute.WeaverVersionInfo.WEAVER_VERSION_MAJOR_AJ150) { return readTypePattern150(s,context); } else { return readTypePatternOldStyle(s,context); } }
	public static TypePattern read(DataInputStream s, ISourceContext context) throws IOException {		byte version = s.readByte();		if (version > VERSION) {			throw new BCException("WildTypePattern was written by a more recent version of AspectJ, cannot read");		}		int len = s.readShort();		NamePattern[] namePatterns = new NamePattern[len];		for (int i=0; i < len; i++) {			namePatterns[i] = NamePattern.read(s);		}		boolean includeSubtypes = s.readBoolean();		int dim = s.readInt();		boolean varArg = s.readBoolean();		WildTypePattern ret = new WildTypePattern(namePatterns, includeSubtypes, dim,varArg);		ret.knownMatches = FileUtil.readStringArray(s);		ret.importedPrefixes = FileUtil.readStringArray(s);		ret.readLocation(context, s);		ret.setAnnotationTypePattern(AnnotationTypePattern.read(s,context));		return ret;	}