Examples of PsiElementFactory


Examples of com.intellij.psi.PsiElementFactory

  @Nullable
  public static PsiTypeParameterList createTypeParameterList(@NotNull PsiTypeParameterList psiTypeParameterList) {
    PsiTypeParameter[] psiTypeParameters = psiTypeParameterList.getTypeParameters();
    if (psiTypeParameters.length > 0) {

      final PsiElementFactory elementFactory = JavaPsiFacade.getInstance(psiTypeParameterList.getProject()).getElementFactory();

      final StringBuilder builder = new StringBuilder("public <");

      for (PsiTypeParameter psiTypeParameter : psiTypeParameters) {
        builder.append(psiTypeParameter.getName());

        PsiClassType[] superTypes = psiTypeParameter.getExtendsListTypes();
        if (superTypes.length > 1 || superTypes.length == 1 && !superTypes[0].equalsToText(CommonClassNames.JAVA_LANG_OBJECT)) {
          builder.append(" extends ");
          for (PsiClassType type : superTypes) {
            if (type.equalsToText(CommonClassNames.JAVA_LANG_OBJECT)) {
              continue;
            }
            builder.append(type.getCanonicalText()).append('&');
          }
          builder.deleteCharAt(builder.length() - 1);
        }
        builder.append(',');
      }
      builder.deleteCharAt(builder.length() - 1);

      builder.append("> void foo(){}");

      PsiMethod methodFromText = elementFactory.createMethodFromText(builder.toString(), null);
      return methodFromText.getTypeParameterList();
    }
    return null;
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.