/**
  * This method typecasts the given {@link XmlObject} to the required generator type and returns
  * back the document of that generator type.
  *
  * @param xmlObject which needs to be converted to the document type of the required generator
  * @return {@link XmlObject} document of the required generator type
  * @see org.kuali.kra.s2s.generator.S2SFormGenerator#getFormObject(XmlObject)
  */
 public XmlObject getFormObject(XmlObject xmlObject) {
   RRFedNonFedSubawardBudget30 rrSubawardBudget = (RRFedNonFedSubawardBudget30) xmlObject;
   RRFedNonFedSubawardBudget30Document rrSubawardBudgetDocument =
       RRFedNonFedSubawardBudget30Document.Factory.newInstance();
   rrSubawardBudgetDocument.setRRFedNonFedSubawardBudget30(rrSubawardBudget);
   return rrSubawardBudgetDocument;
 }
  /**
   * This method is to get SubAward Budget details
   *
   * @return rrSubawardBudgetDocument {@link XmlObject} of type RRFedNonFedSubawardBudgetDocument.
   */
  private RRFedNonFedSubawardBudget30Document getRRFedNonFedSubawardBudgetDocument() {

    RRFedNonFedSubawardBudget30Document rrSubawardBudgetDocument =
        RRFedNonFedSubawardBudget30Document.Factory.newInstance();
    RRFedNonFedSubawardBudget30 rrSubawardBudget =
        RRFedNonFedSubawardBudget30.Factory.newInstance();
    BudgetAttachments budgetAttachments = BudgetAttachments.Factory.newInstance();
    List<BudgetSubAwards> budgetSubAwardsList =
        getBudgetSubAwards(pdDoc, RR_FED_NON_FED_BUDGET30_11_NAMESPACE_URI, false);
    RRFedNonFedBudget[] budgetList = new RRFedNonFedBudget[budgetSubAwardsList.size()];
    rrSubawardBudget.setFormVersion(S2SConstants.FORMVERSION_1_2);

    int attCount = 1;
    for (BudgetSubAwards budgetSubAwards : budgetSubAwardsList) {
      RRFedNonFedBudget rrBudget = getRRFedNonFedBudget(budgetSubAwards).getRRFedNonFedBudget();
      switch (attCount) {
        case 1:
          rrSubawardBudget.setATT1(prepareAttName(budgetSubAwards));
          budgetList[0] = rrBudget;
          break;
        case 2:
          rrSubawardBudget.setATT2(prepareAttName(budgetSubAwards));
          budgetList[1] = rrBudget;
          break;
        case 3:
          rrSubawardBudget.setATT3(prepareAttName(budgetSubAwards));
          budgetList[2] = rrBudget;
          break;
        case 4:
          rrSubawardBudget.setATT4(prepareAttName(budgetSubAwards));
          budgetList[3] = rrBudget;
          break;
        case 5:
          rrSubawardBudget.setATT5(prepareAttName(budgetSubAwards));
          budgetList[4] = rrBudget;
          break;
        case 6:
          rrSubawardBudget.setATT6(prepareAttName(budgetSubAwards));
          budgetList[5] = rrBudget;
          break;
        case 7:
          rrSubawardBudget.setATT7(prepareAttName(budgetSubAwards));
          budgetList[6] = rrBudget;
          break;
        case 8:
          rrSubawardBudget.setATT8(prepareAttName(budgetSubAwards));
          budgetList[7] = rrBudget;
          break;
        case 9:
          rrSubawardBudget.setATT9(prepareAttName(budgetSubAwards));
          budgetList[8] = rrBudget;
          break;
        case 10:
          rrSubawardBudget.setATT10(prepareAttName(budgetSubAwards));
          budgetList[9] = rrBudget;
          break;
        case 11:
          rrSubawardBudget.setATT11(prepareAttName(budgetSubAwards));
          budgetList[10] = rrBudget;
          break;
        case 12:
          rrSubawardBudget.setATT12(prepareAttName(budgetSubAwards));
          budgetList[11] = rrBudget;
          break;
        case 13:
          rrSubawardBudget.setATT13(prepareAttName(budgetSubAwards));
          budgetList[12] = rrBudget;
          break;
        case 14:
          rrSubawardBudget.setATT14(prepareAttName(budgetSubAwards));
          budgetList[13] = rrBudget;
          break;
        case 15:
          rrSubawardBudget.setATT15(prepareAttName(budgetSubAwards));
          budgetList[14] = rrBudget;
          break;
        case 16:
          rrSubawardBudget.setATT16(prepareAttName(budgetSubAwards));
          budgetList[15] = rrBudget;
          break;
        case 17:
          rrSubawardBudget.setATT17(prepareAttName(budgetSubAwards));
          budgetList[16] = rrBudget;
          break;
        case 18:
          rrSubawardBudget.setATT18(prepareAttName(budgetSubAwards));
          budgetList[17] = rrBudget;
          break;
        case 19:
          rrSubawardBudget.setATT19(prepareAttName(budgetSubAwards));
          budgetList[18] = rrBudget;
          break;
        case 20:
          rrSubawardBudget.setATT20(prepareAttName(budgetSubAwards));
          budgetList[19] = rrBudget;
          break;
        case 21:
          rrSubawardBudget.setATT21(prepareAttName(budgetSubAwards));
          budgetList[20] = rrBudget;
          break;
        case 22:
          rrSubawardBudget.setATT22(prepareAttName(budgetSubAwards));
          budgetList[21] = rrBudget;
          break;
        case 23:
          rrSubawardBudget.setATT23(prepareAttName(budgetSubAwards));
          budgetList[22] = rrBudget;
          break;
        case 24:
          rrSubawardBudget.setATT24(prepareAttName(budgetSubAwards));
          budgetList[23] = rrBudget;
          break;
        case 25:
          rrSubawardBudget.setATT25(prepareAttName(budgetSubAwards));
          budgetList[24] = rrBudget;
          break;
        case 26:
          rrSubawardBudget.setATT26(prepareAttName(budgetSubAwards));
          budgetList[25] = rrBudget;
          break;
        case 27:
          rrSubawardBudget.setATT27(prepareAttName(budgetSubAwards));
          budgetList[26] = rrBudget;
          break;
        case 28:
          rrSubawardBudget.setATT28(prepareAttName(budgetSubAwards));
          budgetList[27] = rrBudget;
          break;
        case 29:
          rrSubawardBudget.setATT29(prepareAttName(budgetSubAwards));
          budgetList[28] = rrBudget;
          break;
        case 30:
          rrSubawardBudget.setATT30(prepareAttName(budgetSubAwards));
          budgetList[29] = rrBudget;
          break;
      }
      addSubAwdAttachments(budgetSubAwards);
      attCount++;
    }
    budgetAttachments.setRRFedNonFedBudgetArray(budgetList);
    rrSubawardBudget.setBudgetAttachments(budgetAttachments);
    rrSubawardBudgetDocument.setRRFedNonFedSubawardBudget30(rrSubawardBudget);
    return rrSubawardBudgetDocument;
  }