public static TypeName findOrCreate(ImmutableByteArray name, int start, int length) throws IllegalArgumentException { Atom className = Atom.findOrCreate(StringStuff.parseForClass(name, start, length)); ImmutableByteArray p = StringStuff.parseForPackage(name, start, length); Atom packageName = (p == null) ? null : Atom.findOrCreate(p); int dim = StringStuff.parseForArrayDimensionality(name, start, length); boolean innermostPrimitive = StringStuff.classIsPrimitive(name, start, length); if (innermostPrimitive) { if (dim == 0) { dim = -1; } else { dim <<= ElementBits; dim |= PrimitiveMask; } } TypeNameKey t = new TypeNameKey(packageName, className, dim); return findOrCreate(t); }
public static TypeName findOrCreate(ImmutableByteArray name, int start, int length) throws IllegalArgumentException { Atom className = Atom.findOrCreate(StringStuff.parseForClass(name, start, length)); ImmutableByteArray p = StringStuff.parseForPackage(name, start, length); Atom packageName = (p == null) ? null : Atom.findOrCreate(p); int dim = StringStuff.parseForArrayDimensionality(name, start, length); boolean innermostPrimitive = StringStuff.classIsPrimitive(name, start, length); if (innermostPrimitive) { if (dim == 0) { dim = -1; } else { dim <<= ElementBits; dim |= PrimitiveMask; } } TypeNameKey t = new TypeNameKey(packageName, className, dim); return findOrCreate(t); }