/** * {@inheritDoc} */ public boolean isBridgeCompatible(TypeToken typeToken) { List<TypeDescription> types = getParameters().asTypeList().asErasures(), bridgeTypes = typeToken.getParameterTypes(); if (types.size() != bridgeTypes.size()) { return false; } for (int index = 0; index < types.size(); index++) { if (!types.get(index).equals(bridgeTypes.get(index)) && (types.get(index).isPrimitive() || bridgeTypes.get(index).isPrimitive())) { return false; } } TypeDescription returnType = getReturnType().asErasure(), bridgeReturnType = typeToken.getReturnType(); return returnType.equals(bridgeReturnType) || (!returnType.isPrimitive() && !bridgeReturnType.isPrimitive()); }
/** * {@inheritDoc} */ public ParameterList<ParameterDescription.InDefinedShape> getParameters() { return new ParameterList.Explicit.ForTypes(this, bridgeType.getParameterTypes()); }
@Override public String toString() { return typeToken.getParameterTypes().toString(); } }
/** * Creates a new type token for a Java method. * * @param typeToken The represented type token. */ protected Token(MethodDescription.TypeToken typeToken) { this.typeToken = typeToken; hashCode = typeToken.getParameterTypes().hashCode(); }
/** * {@inheritDoc} */ public TypeDescription.Generic getReturnType() { return bridgeType.getReturnType().asGenericType(); }
/** * {@inheritDoc} */ public TypeToken asTypeToken() { return new TypeToken(getReturnType().asErasure(), getParameters().asTypeList().asErasures()); }
@Override public boolean equals(Object other) { return this == other || other instanceof Token && typeToken.getParameterTypes().equals(((Token) other).typeToken.getParameterTypes()); }
/** * Returns this signature token as a type token. * * @return This signature token as a type token. */ public TypeToken asTypeToken() { return new TypeToken(returnType, parameterTypes); }
@Override public String toString() { return typeToken.toString(); } }
@Override public boolean equals(Object other) { if (this == other) { return true; } else if (!(other instanceof Token)) { return false; } Token token = (Token) other; return typeToken.getReturnType().equals(token.typeToken.getReturnType()) && typeToken.getParameterTypes().equals(token.typeToken.getParameterTypes()); }
/** * Creates a new type token for a JVM method. * * @param typeToken The represented type token. */ public Token(MethodDescription.TypeToken typeToken) { this.typeToken = typeToken; hashCode = typeToken.getReturnType().hashCode() + 31 * typeToken.getParameterTypes().hashCode(); }