ParcelablePlease-intellij-plugin/src/com/hannesdorfmann/parcelableplease/plugin/CodeGenerator.java
public void generate() {

    PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(psiClass.getProject());
    JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(psiClass.getProject());

    // Clear any previous
    clearPrevious();

    // Implements parcelable
    makeClassImplementParcelable(elementFactory, styleManager);

    // @ParcelablePlease Annotation
    addAnnotation(elementFactory, styleManager);

    // Creator
    PsiField creatorField = elementFactory.createFieldFromText(generateCreator(), psiClass);

    // Describe contents method
    PsiMethod describeContentsMethod =
        elementFactory.createMethodFromText(generateDescribeContents(), psiClass);

    // Method for writing to the parcel
    PsiMethod writeToParcelMethod =
        elementFactory.createMethodFromText(generateWriteToParcel(), psiClass);

    styleManager.shortenClassReferences(
        psiClass.addBefore(describeContentsMethod, psiClass.getLastChild()));

    styleManager.shortenClassReferences(
        psiClass.addBefore(writeToParcelMethod, psiClass.getLastChild()));

    styleManager.shortenClassReferences(psiClass.addBefore(creatorField, psiClass.getLastChild()));
  }
public void generate() {

    PsiElementFactory elementFactory = JavaPsiFacade.getElementFactory(psiClass.getProject());
    JavaCodeStyleManager styleManager = JavaCodeStyleManager.getInstance(psiClass.getProject());

    // Clear any previous
    clearPrevious();

    // Implements parcelable
    makeClassImplementParcelable(elementFactory, styleManager);

    // @ParcelablePlease Annotation
    addAnnotation(elementFactory, styleManager);

    // Creator
    PsiField creatorField = elementFactory.createFieldFromText(generateCreator(), psiClass);

    // Describe contents method
    PsiMethod describeContentsMethod =
        elementFactory.createMethodFromText(generateDescribeContents(), psiClass);

    // Method for writing to the parcel
    PsiMethod writeToParcelMethod =
        elementFactory.createMethodFromText(generateWriteToParcel(), psiClass);

    styleManager.shortenClassReferences(
        psiClass.addBefore(describeContentsMethod, psiClass.getLastChild()));

    styleManager.shortenClassReferences(
        psiClass.addBefore(writeToParcelMethod, psiClass.getLastChild()));

    styleManager.shortenClassReferences(psiClass.addBefore(creatorField, psiClass.getLastChild()));
  }
public void generate ( ) { PsiElementFactory elementFactory = JavaPsiFacade . getElementFactory ( psiClass . getProject ( ) ) ; JavaCodeStyleManager styleManager = JavaCodeStyleManager . getInstance ( psiClass . getProject ( ) ) ; // Clear any previous clearPrevious ( ) ; // Implements parcelable makeClassImplementParcelable ( elementFactory , styleManager ) ; // @ParcelablePlease Annotation addAnnotation ( elementFactory , styleManager ) ; // Creator PsiField creatorField = elementFactory . createFieldFromText ( generateCreator ( ) , psiClass ) ; // Describe contents method PsiMethod describeContentsMethod = elementFactory . createMethodFromText ( generateDescribeContents ( ) , psiClass ) ; // Method for writing to the parcel PsiMethod writeToParcelMethod = elementFactory . createMethodFromText ( generateWriteToParcel ( ) , psiClass ) ; styleManager . shortenClassReferences ( psiClass . addBefore ( describeContentsMethod , psiClass . getLastChild ( ) ) ) ; styleManager . shortenClassReferences ( psiClass . addBefore ( writeToParcelMethod , psiClass . getLastChild ( ) ) ) ; styleManager . shortenClassReferences ( psiClass . addBefore ( creatorField , psiClass . getLastChild ( ) ) ) ; }
Generate and insert the Parcel and ParcelablePlease code
Generate and insert the Parcel and ParcelablePlease code