/** * <p>getJavaLangObject</p> * * @return a {@link com.google.gwt.core.ext.typeinfo.JClassType} object. */ public JClassType getJavaLangObject() { return typeOracle.getJavaLangObject(); }
@Override public void endVisit(JWildcardType wildcardType) { // TODO: fix this to not assume the typemodel types. com.google.gwt.dev.javac.typemodel.JTypeParameter newParam = new com.google.gwt.dev.javac.typemodel.JTypeParameter("TP$" + freshTypeVariableCounter++, -1); newParam .setBounds(new com.google.gwt.dev.javac.typemodel.JClassType[] {(com.google.gwt.dev.javac.typemodel.JClassType) typeOracle .getJavaLangObject()}); constraints.put(newParam, wildcardType.getUpperBound()); replacement = newParam; } };
/** * Used by {@link #writeShim} to avoid duplicate declarations of Object * methods. */ private boolean isObjectMethodImplementedByShim(JMethod jmethod) { String methodName = jmethod.getName(); JParameter[] parameters = jmethod.getParameters(); switch (parameters.length) { case 0: return methodName.equals("hashCode") || methodName.equals("toString"); case 1: return methodName.equals("equals") && parameters[0].getType().equals(context.getTypeOracle().getJavaLangObject()); } return false; }
/** * Used by {@link #writeShim} to avoid duplicate declarations of Object * methods. */ private boolean isObjectMethodImplementedByShim(JMethod jmethod) { String methodName = jmethod.getName(); JParameter[] parameters = jmethod.getParameters(); switch (parameters.length) { case 0: return methodName.equals("hashCode") || methodName.equals("toString"); case 1: return methodName.equals("equals") && parameters[0].getType().equals(context.getTypeOracle().getJavaLangObject()); } return false; }
@Override public void endVisit(JWildcardType wildcardType) { // TODO: fix this to not assume the typemodel types. com.google.gwt.dev.javac.typemodel.JTypeParameter newParam = new com.google.gwt.dev.javac.typemodel.JTypeParameter("TP$" + freshTypeVariableCounter++, -1); newParam .setBounds(new com.google.gwt.dev.javac.typemodel.JClassType[] {(com.google.gwt.dev.javac.typemodel.JClassType) typeOracle .getJavaLangObject()}); constraints.put(newParam, wildcardType.getUpperBound()); replacement = newParam; } };
/** * Used by {@link #writeShim} to avoid duplicate declarations of Object * methods. */ private boolean isObjectMethodImplementedByShim(JMethod jmethod) { String methodName = jmethod.getName(); JParameter[] parameters = jmethod.getParameters(); switch (parameters.length) { case 0: return methodName.equals("hashCode") || methodName.equals("toString"); case 1: return methodName.equals("equals") && parameters[0].getType().equals(context.getTypeOracle().getJavaLangObject()); } return false; }
this.jsoSuperDescs = Collections.unmodifiableMap(buildJsoSuperDescs); this.jsoData = new MySingleJsoImplData(typeOracle); this.mapper = new MyInstanceMethodOracle(jsoTypes, typeOracle.getJavaLangObject());
/** * Consider any subtype of java.lang.Object which qualifies for serialization. */ private void checkAllSubtypesOfObject(TreeLogger logger, TypePath parent, ProblemReport problems) { if (alreadyCheckedObject) { return; } alreadyCheckedObject = true; /* * This will pull in the world and the set of serializable types will be * larger than it needs to be. We exclude types that do not qualify for * serialization to avoid generating false errors due to types that do not * qualify for serialization and have no serializable subtypes. */ TreeLogger localLogger = logger.branch(TreeLogger.WARN, "Checking all subtypes of Object which qualify for serialization", null); JClassType[] allTypes = typeOracle.getJavaLangObject().getSubtypes(); for (JClassType cls : allTypes) { if (isDeclaredSerializable(cls)) { computeTypeInstantiability(localLogger, cls, TypePaths.createSubtypePath(parent, cls, typeOracle.getJavaLangObject()), problems); } } }
this.jsoSuperDescs = Collections.unmodifiableMap(buildJsoSuperDescs); this.jsoData = new MySingleJsoImplData(typeOracle); this.mapper = new MyInstanceMethodOracle(jsoTypes, typeOracle.getJavaLangObject());
/** * Consider any subtype of java.lang.Object which qualifies for serialization. */ private void checkAllSubtypesOfObject(TreeLogger logger, TypePath parent, ProblemReport problems) { if (alreadyCheckedObject) { return; } alreadyCheckedObject = true; /* * This will pull in the world and the set of serializable types will be * larger than it needs to be. We exclude types that do not qualify for * serialization to avoid generating false errors due to types that do not * qualify for serialization and have no serializable subtypes. */ TreeLogger localLogger = logger.branch(TreeLogger.WARN, "Checking all subtypes of Object which qualify for serialization", null); JClassType[] allTypes = typeOracle.getJavaLangObject().getSubtypes(); for (JClassType cls : allTypes) { if (isDeclaredSerializable(cls)) { computeTypeInstantiability(localLogger, cls, TypePaths.createSubtypePath(parent, cls, typeOracle.getJavaLangObject()), problems); } } }
if (baseType == typeOracle.getJavaLangObject()) { return possiblyInstantiableTypes;
if (baseType == typeOracle.getJavaLangObject()) { return possiblyInstantiableTypes;
continue; if (!oracle.getJavaLangObject().isAssignableTo(value)) { continue;
continue; if (!oracle.getJavaLangObject().isAssignableTo(value)) { continue;
continue; if (!oracle.getJavaLangObject().isAssignableTo(value)) { continue;
JClassType objectType = oracle.getJavaLangObject(); objectMethods = Arrays.asList( objectType.findMethod("equals", new JType[] {objectType}),
&& fieldType.getLeafType() == typeOracle.getJavaLangObject()) { checkAllSubtypesOfObject(fieldLogger.branch(TreeLogger.WARN, "Object was reached from a manually serializable type", null), path, problems);
&& fieldType.getLeafType() == typeOracle.getJavaLangObject()) { checkAllSubtypesOfObject(fieldLogger.branch(TreeLogger.WARN, "Object was reached from a manually serializable type", null), path, problems);
if (classType == typeOracle.getJavaLangObject()) {
if (classType == typeOracle.getJavaLangObject()) {