@NotNull
  @Override
  public PsiClassType createType(@NotNull final PsiClass aClass, final PsiType parameter) {
    final PsiTypeParameter[] typeParameters = aClass.getTypeParameters();
    assert typeParameters.length == 1 : aClass;

    return createType(aClass, PsiSubstitutor.EMPTY.put(typeParameters[0], parameter));
  }
 @NotNull
 @Override
 public PsiClassType createType(@NotNull final PsiClass aClass, final PsiType... parameters) {
   return createType(aClass, PsiSubstitutor.EMPTY.putAll(aClass, parameters));
 }