public void add( String jsIdent, String jsniIdent, String className, String memberName, String runtimeTypeId, CastableTypeData castableTypeData) { oracle.idents.add(jsIdent); ClassData data = oracle.getClassData(className); /* * Don't overwrite castableTypeData and runtimeTypeId if already set. * There are many versions of symbols for a given className, * corresponding to the type of member fields, etc., * which don't have the runtimeTypeId or castableTypeData initialized. Only * the symbol data for the class itself has this info. */ if (data.castableTypeData == null) { data.runtimeTypeId = runtimeTypeId; data.castableTypeData = castableTypeData; } if (jsniIdent == null || jsniIdent.length() == 0) { data.typeName = className; data.jsSymbolName = jsIdent; oracle.seedNamesToClassData.put(jsIdent, data); // Class.getName() with metadata disabled is "Class$S<seedId>" oracle.seedIdsToClassData.put("S" + runtimeTypeId, data); data.runtimeTypeId = runtimeTypeId; } else { if (jsniIdent.contains("(")) { jsniIdent = jsniIdent.substring(jsniIdent.indexOf("::") + 2, jsniIdent.indexOf(')') + 1); data.methodJsniNamesToIdents.put(jsniIdent, jsIdent); } else { data.fieldIdentsToNames.put(jsIdent, memberName); data.fieldNamesToIdents.put(memberName, jsIdent); } } }