@Override List<TypeParameterInfo> typeParameterInfoList() { return delegate.typeParameterInfoList(); }
@Override List<TypeParameterInfo> typeParameterInfoList() { return delegate.typeParameterInfoList(); }
@Override List<TypeParameterInfo> typeParameterInfoList() { return component.typeParameterInfoList(); }
@Override public final int hashCode() { Optional<TypeVariableInfo> typeVariableInfo = typeVariableInfo(); Optional<PackageInfo> packageInfo = packageInfo(); Optional<NameInfo> type = type(); List<TypeParameterInfo> typeParameterInfoList = typeParameterInfoList(); return Objects.hashCode(typeVariableInfo, packageInfo, type, typeParameterInfoList); }
@Override public final boolean equals(final Object obj) { if (obj == this) { return true; } if (obj instanceof TypeParameterInfo) { final TypeParameterInfo that = (TypeParameterInfo) obj; return Objects.equal(typeVariableInfo(), that.typeVariableInfo()) && Objects.equal(packageInfo(), that.packageInfo()) && Objects.equal(type(), that.type()) && Objects.equal(typeParameterInfoList(), that.typeParameterInfoList()); } else { return false; } }
@AutoFunctional public String declaredName() { StringBuilder res = new StringBuilder(); String space = ""; Optional<TypeVariableInfo> maybeTypeVariableInfo = typeVariableInfo(); if (maybeTypeVariableInfo.isPresent()) { TypeVariableInfo typeVariableInfo = maybeTypeVariableInfo.get(); res.append(typeVariableInfo.declaredName()); space = " "; } Optional<NameInfo> maybeType = type(); if (maybeType.isPresent()) { res.append(space); String type = maybeType.get().getSimpleName(); res.append(type); } List<TypeParameterInfo> typeParameterInfoList = typeParameterInfoList(); if (!typeParameterInfoList.isEmpty()) { res.append("<"); res.append(Joiner.on(", ").join(typeParameterInfoList)); res.append(">"); } return res.toString(); }
@Override public boolean isEqual(TypeParameterInfo that) { return Testables.isEqualHelper() .equal(typeVariableInfo(), that.typeVariableInfo()) .equal(packageInfo(), that.packageInfo()) .equal(type(), that.type()) .equal(typeParameterInfoList(), that.typeParameterInfoList()) .result(); }
@AutoFunctional public SimpleTypeInfo toSimpleTypeInfo() { return SimpleTypeInfo.newType() .packageInfo(packageInfo()) .nameInfo(type().or(NameInfo.of())) .typeParameterInfoList(typeParameterInfoList()) .build(); }