/* */ private C loadObjectFactory(ClassInfoImpl<T, C, F, M> ci, String pkg) { /* */ try { /* 269 */ return this.nav.findClass(pkg + ".ObjectFactory", ci.getClazz()); /* */ } catch (SecurityException ignored) { /* */ } /* 272 */ return null; /* */ }
/* */ public NonElement<T, C> getClassInfo( C clazz, boolean searchForSuperClass, Locatable upstream) /* */ { /* 207 */ assert (clazz != null); /* 208 */ NonElement r = this.typeInfoSet.getClassInfo(clazz); /* 209 */ if (r != null) { /* 210 */ return r; /* */ } /* 212 */ if (this.nav.isEnum(clazz)) { /* 213 */ EnumLeafInfoImpl li = createEnumLeafInfo(clazz, upstream); /* 214 */ this.typeInfoSet.add(li); /* 215 */ r = li; /* 216 */ addTypeName(r); /* */ } else { /* 218 */ boolean isReplaced = this.subclassReplacements.containsKey(clazz); /* 219 */ if ((isReplaced) && (!searchForSuperClass)) /* */ { /* 221 */ r = getClassInfo(this.subclassReplacements.get(clazz), upstream); /* */ } /* 223 */ else if ((this.reader.hasClassAnnotation(clazz, XmlTransient.class)) || (isReplaced)) /* */ { /* 225 */ r = getClassInfo( this.nav.getSuperClass(clazz), searchForSuperClass, new ClassLocatable(upstream, clazz, this.nav)); /* */ } /* */ else { /* 228 */ ClassInfoImpl ci = createClassInfo(clazz, upstream); /* 229 */ this.typeInfoSet.add(ci); /* */ /* 232 */ for (PropertyInfo p : ci.getProperties()) { /* 233 */ if (p.kind() == PropertyKind.REFERENCE) /* */ { /* 235 */ String pkg = this.nav.getPackageName(ci.getClazz()); /* 236 */ if (!this.registries.containsKey(pkg)) /* */ { /* 238 */ Object c = loadObjectFactory(ci, pkg); /* 239 */ if (c != null) { /* 240 */ addRegistry(c, (Locatable) p); /* */ } /* */ } /* */ } /* 244 */ for (Iterator i$ = p.ref().iterator(); i$.hasNext(); t = (TypeInfo) i$.next()) ; /* */ } /* */ TypeInfo t; /* 247 */ ci.getBaseClass(); /* */ /* 249 */ r = ci; /* 250 */ addTypeName(r); /* */ } /* */ /* */ } /* */ /* 256 */ XmlSeeAlso sa = (XmlSeeAlso) this.reader.getClassAnnotation(XmlSeeAlso.class, clazz, upstream); /* 257 */ if (sa != null) { /* 258 */ for (Object t : this.reader.getClassArrayValue(sa, "value")) { /* 259 */ getTypeInfo(t, (Locatable) sa); /* */ } /* */ /* */ } /* */ /* 264 */ return r; /* */ }