Examples of IMMDates


Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    ZonedDateTime date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    List<ZonedDateTime> dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(date);
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
    }
    ZonedDateTime[] expected1 = dates.toArray(new ZonedDateTime[dates.size()]);
    ZonedDateTime[] expected2 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected3 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected4 = new ZonedDateTime[dates.size()];
    /*ZonedDateTime[] actual = CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    assertDateArrayEquals(expected, actual);*/
    ZonedDateTime[][] calculatedSchedule = DEPRECATED_CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    ZonedDateTime[] extractCalculatedSchedule1 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule2 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule3 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule4 = new ZonedDateTime[calculatedSchedule.length];
    for (int loop = 0; loop < calculatedSchedule.length; loop++) {
      extractCalculatedSchedule1[loop] = calculatedSchedule[loop][0];
    }

    for (int loop = 1; loop < calculatedSchedule.length; loop++) {
      extractCalculatedSchedule2[loop] = calculatedSchedule[loop][1];
      extractCalculatedSchedule3[loop] = calculatedSchedule[loop][2];
      extractCalculatedSchedule4[loop] = calculatedSchedule[loop][3];
    }
    ZonedDateTime prevDate = expected1[0];
    ZonedDateTime prevDateAdj = prevDate;
    for (int loop = 1; loop < calculatedSchedule.length; loop++) {
      ZonedDateTime nextDate = expected1[loop];
      ZonedDateTime nextDateAdj = expected1[loop];
      // accStartDate
      expected2[loop] = prevDateAdj;

      // accEndDate
      expected3[loop] = nextDateAdj;

      // payDate
      expected4[loop] = nextDateAdj;

      prevDate = nextDate;
      prevDateAdj = nextDateAdj;
    }

    if (cds.getProtectionStart()) {
      expected3[expected1.length - 1] = prevDate.plusDays(1);
    }
    else
    {
      expected3[expected1.length - 1] = prevDate;
    }

    assertDateArrayEquals(expected1, extractCalculatedSchedule1);
    assertDateArrayEquals(expected2, extractCalculatedSchedule2);
    assertDateArrayEquals(expected3, extractCalculatedSchedule3);
    assertDateArrayEquals(expected4, extractCalculatedSchedule4);

    cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTSHORT);
    final BusinessDayConvention bdc = cds.getBusinessDayAdjustmentConvention();
    final Calendar holidays = cds.getCalendar();
    date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(bdc.adjustDate(holidays, date));
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
View Full Code Here

Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

   * Test of the schedule generation, here we test the FRONTSHORT stub case when the start date is an holiday:
   * Stub is at the start (front) of the cashflow schedule; first coupon is on the first IMM date after the effective date (short stub).
   */
  @Test
  public void testFrontShortFirstDateHoliday() {
    final ZonedDateTime startDate = new IMMDates(2008).getImmDateSeptember();
    final ZonedDateTime effectiveDate = startDate.plusDays(1);
    LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTSHORT);
    cds = new LegacyVanillaCreditDefaultSwapDefinition(cds.getBuySellProtection(),
        cds.getProtectionBuyer(),
        cds.getProtectionSeller(),
        cds.getReferenceEntity(),
        cds.getCurrency(),
        cds.getDebtSeniority(),
        cds.getRestructuringClause(),
        new NoHolidayCalendar(),
        startDate,
        effectiveDate,
        cds.getMaturityDate(),
        cds.getStubType(),
        cds.getCouponFrequency(),
        cds.getDayCountFractionConvention(),
        cds.getBusinessDayAdjustmentConvention(),
        cds.getIMMAdjustMaturityDate(),
        cds.getAdjustEffectiveDate(),
        cds.getAdjustMaturityDate(),
        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    ZonedDateTime date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    List<ZonedDateTime> dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(date);
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
    }
    ZonedDateTime[] expected1 = dates.toArray(new ZonedDateTime[dates.size()]);
    ZonedDateTime[] expected2 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected3 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected4 = new ZonedDateTime[dates.size()];

    //CALCULATOR not tested in this file
    /*ZonedDateTime[] actual = CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    assertDateArrayEquals(expected, actual);*/
    ZonedDateTime[][] calculatedSchedule = DEPRECATED_CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    ZonedDateTime[] extractCalculatedSchedule1 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule2 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule3 = new ZonedDateTime[calculatedSchedule.length];
    ZonedDateTime[] extractCalculatedSchedule4 = new ZonedDateTime[calculatedSchedule.length];
    for (int loop = 0; loop < calculatedSchedule.length; loop++) {
      extractCalculatedSchedule1[loop] = calculatedSchedule[loop][0];
    }

    for (int loop = 1; loop < calculatedSchedule.length; loop++) {
      extractCalculatedSchedule2[loop] = calculatedSchedule[loop][1];
      extractCalculatedSchedule3[loop] = calculatedSchedule[loop][2];
      extractCalculatedSchedule4[loop] = calculatedSchedule[loop][3];
    }
    ZonedDateTime prevDate = expected1[0];
    ZonedDateTime prevDateAdj = prevDate;
    for (int loop = 1; loop < calculatedSchedule.length; loop++) {
      ZonedDateTime nextDate = expected1[loop];
      ZonedDateTime nextDateAdj = expected1[loop];
      // accStartDate
      expected2[loop] = prevDateAdj;

      // accEndDate
      expected3[loop] = nextDateAdj;

      // payDate
      expected4[loop] = nextDateAdj;

      prevDate = nextDate;
      prevDateAdj = nextDateAdj;
    }

    if (cds.getProtectionStart()) {
      expected3[expected1.length - 1] = prevDate.plusDays(1);
    }
    else
    {
      expected3[expected1.length - 1] = prevDate;
    }

    assertDateArrayEquals(expected1, extractCalculatedSchedule1);
    assertDateArrayEquals(expected2, extractCalculatedSchedule2);
    assertDateArrayEquals(expected3, extractCalculatedSchedule3);
    assertDateArrayEquals(expected4, extractCalculatedSchedule4);

    cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTSHORT);
    cds = new LegacyVanillaCreditDefaultSwapDefinition(cds.getBuySellProtection(),
        cds.getProtectionBuyer(),
        cds.getProtectionSeller(),
        cds.getReferenceEntity(),
        cds.getCurrency(),
        cds.getDebtSeniority(),
        cds.getRestructuringClause(),
        cds.getCalendar(),
        startDate,
        effectiveDate,
        cds.getMaturityDate(),
        cds.getStubType(),
        cds.getCouponFrequency(),
        cds.getDayCountFractionConvention(),
        cds.getBusinessDayAdjustmentConvention(),
        cds.getIMMAdjustMaturityDate(),
        cds.getAdjustEffectiveDate(),
        cds.getAdjustMaturityDate(),
        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    final BusinessDayConvention bdc = cds.getBusinessDayAdjustmentConvention();
    final Calendar holidays = cds.getCalendar();
    date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(bdc.adjustDate(holidays, date));
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
View Full Code Here

Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    ZonedDateTime date = new IMMDates(cds.getStartDate().getYear()).getImmDateNextMarch();
    List<ZonedDateTime> dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(date);
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
    }
    ZonedDateTime[] expected1 = dates.toArray(new ZonedDateTime[dates.size()]);
    ZonedDateTime[] expected2 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected3 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected4 = new ZonedDateTime[dates.size()];
    /*ZonedDateTime[] actual = CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    assertDateArrayEquals(expected, actual);*/
    ZonedDateTime[][] calculated = DEPRECATED_CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    ZonedDateTime[] extractCalculatedSchedule1 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule2 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule3 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule4 = new ZonedDateTime[calculated.length];
    for (int loop = 0; loop < calculated.length; loop++) {
      extractCalculatedSchedule1[loop] = calculated[loop][0];
    }

    for (int loop = 1; loop < calculated.length; loop++) {
      extractCalculatedSchedule2[loop] = calculated[loop][1];
      extractCalculatedSchedule3[loop] = calculated[loop][2];
      extractCalculatedSchedule4[loop] = calculated[loop][3];
    }
    ZonedDateTime prevDate = expected1[0];
    ZonedDateTime prevDateAdj = prevDate;
    for (int loop = 1; loop < calculated.length; loop++) {
      ZonedDateTime nextDate = expected1[loop];
      ZonedDateTime nextDateAdj = expected1[loop];
      // accStartDate
      expected2[loop] = prevDateAdj;

      // accEndDate
      expected3[loop] = nextDateAdj;

      // payDate
      expected4[loop] = nextDateAdj;

      prevDate = nextDate;
      prevDateAdj = nextDateAdj;
    }

    if (cds.getProtectionStart()) {
      expected3[expected1.length - 1] = prevDate.plusDays(1);
    }
    else
    {
      expected3[expected1.length - 1] = prevDate;
    }

    assertDateArrayEquals(expected1, extractCalculatedSchedule1);
    assertDateArrayEquals(expected2, extractCalculatedSchedule2);
    assertDateArrayEquals(expected3, extractCalculatedSchedule3);
    assertDateArrayEquals(expected4, extractCalculatedSchedule4);

    cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTSHORT);
    final BusinessDayConvention bdc = cds.getBusinessDayAdjustmentConvention();
    final Calendar holidays = cds.getCalendar();
    date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(bdc.adjustDate(holidays, date));
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
View Full Code Here

Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

   * Test of the schedule generation, here we test the FRONTLONG stub case when the start date is an holiday:
   * Stub is at the end (back) of the cashflow schedule; last but one coupon is on the last scheduled coupon date before the maturity date (short stub)
   */
  @Test
  public void testFrontLongFirstDateHoliday() {
    final ZonedDateTime startDate = new IMMDates(2008).getImmDateSeptember();
    final ZonedDateTime effectiveDate = startDate.plusDays(1);
    LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTLONG);
    cds = new LegacyVanillaCreditDefaultSwapDefinition(cds.getBuySellProtection(),
        cds.getProtectionBuyer(),
        cds.getProtectionSeller(),
        cds.getReferenceEntity(),
        cds.getCurrency(),
        cds.getDebtSeniority(),
        cds.getRestructuringClause(),
        new NoHolidayCalendar(),
        startDate,
        effectiveDate,
        cds.getMaturityDate(),
        cds.getStubType(),
        cds.getCouponFrequency(),
        cds.getDayCountFractionConvention(),
        cds.getBusinessDayAdjustmentConvention(),
        cds.getIMMAdjustMaturityDate(),
        cds.getAdjustEffectiveDate(),
        cds.getAdjustMaturityDate(),
        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    ZonedDateTime date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    List<ZonedDateTime> dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(date);
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
    }
    ZonedDateTime[] expected1 = dates.toArray(new ZonedDateTime[dates.size()]);
    ZonedDateTime[] expected2 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected3 = new ZonedDateTime[dates.size()];
    ZonedDateTime[] expected4 = new ZonedDateTime[dates.size()];
    /*ZonedDateTime[] actual = CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);
    assertDateArrayEquals(expected, actual);*/
    ZonedDateTime[][] calculated = DEPRECATED_CALCULATOR.constructISDACompliantCreditDefaultSwapPremiumLegSchedule(cds);

    ZonedDateTime[] extractCalculatedSchedule1 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule2 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule3 = new ZonedDateTime[calculated.length];
    ZonedDateTime[] extractCalculatedSchedule4 = new ZonedDateTime[calculated.length];
    for (int loop = 0; loop < calculated.length; loop++) {
      extractCalculatedSchedule1[loop] = calculated[loop][0];
    }

    for (int loop = 1; loop < calculated.length; loop++) {
      extractCalculatedSchedule2[loop] = calculated[loop][1];
      extractCalculatedSchedule3[loop] = calculated[loop][2];
      extractCalculatedSchedule4[loop] = calculated[loop][3];
    }

    ZonedDateTime prevDate = expected1[0];

    ZonedDateTime prevDateAdj = prevDate;
    for (int loop = 1; loop < calculated.length; loop++) {
      ZonedDateTime nextDate = expected1[loop];
      ZonedDateTime nextDateAdj = expected1[loop];
      // accStartDate
      expected2[loop] = prevDateAdj;

      // accEndDate
      expected3[loop] = nextDateAdj;

      // payDate
      expected4[loop] = nextDateAdj;

      prevDate = nextDate;
      prevDateAdj = nextDateAdj;
    }

    if (cds.getProtectionStart()) {
      expected3[expected1.length - 1] = prevDate.plusDays(1);
    }
    else
    {
      expected3[expected1.length - 1] = prevDate;
    }

    assertDateArrayEquals(expected1, extractCalculatedSchedule1);
    assertDateArrayEquals(expected2, extractCalculatedSchedule2);
    assertDateArrayEquals(expected3, extractCalculatedSchedule3);
    assertDateArrayEquals(expected4, extractCalculatedSchedule4);

    cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTLONG);
    cds = new LegacyVanillaCreditDefaultSwapDefinition(cds.getBuySellProtection(),
        cds.getProtectionBuyer(),
        cds.getProtectionSeller(),
        cds.getReferenceEntity(),
        cds.getCurrency(),
        cds.getDebtSeniority(),
        cds.getRestructuringClause(),
        cds.getCalendar(),
        startDate,
        effectiveDate,
        cds.getMaturityDate(),
        cds.getStubType(),
        cds.getCouponFrequency(),
        cds.getDayCountFractionConvention(),
        cds.getBusinessDayAdjustmentConvention(),
        cds.getIMMAdjustMaturityDate(),
        cds.getAdjustEffectiveDate(),
        cds.getAdjustMaturityDate(),
        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    final BusinessDayConvention bdc = cds.getBusinessDayAdjustmentConvention();
    final Calendar holidays = cds.getCalendar();
    date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(bdc.adjustDate(holidays, date));
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
View Full Code Here

Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

   * Test of the schedule generation, here we test the FRONTLONG stub case when there is only one date generated in the schedule (the schedule contain two dates but the start date is not generated):
   * Stub is at the end (back) of the cashflow schedule; last but one coupon is on the last scheduled coupon date before the maturity date (short stub)
   */
  @Test
  public void testFrontOneDate() {
    final ZonedDateTime startDate = new IMMDates(2007).getImmDateJune();
    final ZonedDateTime effectiveDate = startDate.plusDays(1);
    final ZonedDateTime endDate = startDate.plusMonths(1);
    LegacyVanillaCreditDefaultSwapDefinition cds = CreditDefaultSwapDefinitionDataSets.getLegacyVanillaDefinitionWithStubType(StubType.FRONTLONG);
    cds = new LegacyVanillaCreditDefaultSwapDefinition(cds.getBuySellProtection(),
        cds.getProtectionBuyer(),
        cds.getProtectionSeller(),
        cds.getReferenceEntity(),
        cds.getCurrency(),
        cds.getDebtSeniority(),
        cds.getRestructuringClause(),
        new NoHolidayCalendar(),
        startDate,
        effectiveDate,
        endDate,
        cds.getStubType(),
        cds.getCouponFrequency(),
        cds.getDayCountFractionConvention(),
        cds.getBusinessDayAdjustmentConvention(),
        cds.getIMMAdjustMaturityDate(),
        cds.getAdjustEffectiveDate(),
        cds.getAdjustMaturityDate(),
        cds.getNotional(),
        cds.getRecoveryRate(),
        cds.getIncludeAccruedPremium(),
        cds.getProtectionStart(),
        cds.getParSpread());
    ZonedDateTime date = new IMMDates(cds.getStartDate().getYear()).getImmDateDecember();
    final List<ZonedDateTime> dates = new ArrayList<>();
    dates.add(cds.getStartDate());
    while (!date.isAfter(cds.getMaturityDate())) {
      dates.add(date);
      date = date.plusMonths(cds.getCouponFrequency().getPeriod().toTotalMonths());
View Full Code Here

Examples of com.opengamma.analytics.financial.credit.schedulegeneration.IMMDates

    // Start at the current maturityDate
    ZonedDateTime immAdjustedDate = date;
    // Get the year of the contract maturity
    final int year = date.getYear();
    // Construct an IMM object with the IMM dates for 'year'
    final IMMDates immDates = new IMMDates(year);
    // First of all check that the maturity date isn't one of the IMM dates for 'year'
    if (date.equals(immDates.getImmDateMarch())) {
      immAdjustedDate = immDates.getImmDateMarch();
      return immAdjustedDate;
    }
    if (date.equals(immDates.getImmDateJune())) {
      immAdjustedDate = immDates.getImmDateJune();
      return immAdjustedDate;
    }
    if (date.equals(immDates.getImmDateSeptember())) {
      immAdjustedDate = immDates.getImmDateSeptember();
      return immAdjustedDate;
    }
    if (date.equals(immDates.getImmDateDecember())) {
      immAdjustedDate = immDates.getImmDateDecember();
      return immAdjustedDate;
    }
    // Determine where the maturity date is in relation to the IMM dates
    // Is the maturity date between 20/12 of the previous year and 20/3 of the current year
    if (date.isAfter(immDates.getImmDatePreviousDecember()) && date.isBefore(immDates.getImmDateMarch())) {
      immAdjustedDate = immDates.getImmDateMarch();
      return immAdjustedDate;
    }

    // Is the maturity date between 20/3 of the current year and 20/6 of the current year
    if (date.isAfter(immDates.getImmDateMarch()) && date.isBefore(immDates.getImmDateJune())) {
      immAdjustedDate = immDates.getImmDateJune();
      return immAdjustedDate;
    }

    // Is the maturity date between 20/6 of the current year and 20/9 of the current year
    if (date.isAfter(immDates.getImmDateJune()) && date.isBefore(immDates.getImmDateSeptember())) {
      immAdjustedDate = immDates.getImmDateSeptember();
      return immAdjustedDate;
    }

    // Is the maturity date between 20/9 of the current year and 20/12 of the current year
    if (date.isAfter(immDates.getImmDateSeptember()) && date.isBefore(immDates.getImmDateDecember())) {
      immAdjustedDate = immDates.getImmDateDecember();
      return immAdjustedDate;
    }

    // Is the maturity date between 20/12 of the current year and 20/3 of the next year
    if (date.isAfter(immDates.getImmDateDecember()) && date.isBefore(immDates.getImmDateNextMarch())) {
      immAdjustedDate = immDates.getImmDateNextMarch();
      return immAdjustedDate;
    }
    return immAdjustedDate;
  }
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.