List of usage examples for org.joda.time DateTime plusYears
public DateTime plusYears(int years)
From source file:TVShowTimelineMaker.timeConstraints.AgeConstraint.java
public boolean consistentWithConstraint(DateTime inFirstDay, DateTime inSecondDay) { DateTime lowerBoundOnBirthDay = inSecondDay.minusYears(this.upperBound).withHourOfDay(1); DateTime upperBoundOnBirthDay = inSecondDay.minusYears(this.lowerBound).withHourOfDay(23); DateTime lowerBoundOnEvent = inFirstDay.plusYears(this.lowerBound).withHourOfDay(1); DateTime upperBoundOnEvent = inFirstDay.plusYears(this.upperBound).withHourOfDay(23); return !inFirstDay.isBefore(lowerBoundOnBirthDay) && !inFirstDay.isAfter(upperBoundOnBirthDay) && !inSecondDay.isBefore(lowerBoundOnEvent) && !inSecondDay.isAfter(upperBoundOnEvent); }
From source file:TVShowTimelineMaker.timeConstraints.AgeConstraint.java
@Override public Event[] increaseWhat(Placement inValues[]) { DateTime inFirstStartTime;//from ww w . j a va 2 s. c o m DateTime inFirstEndTime; DateTime inSecondStartTime; DateTime inSecondEndTime; if (this.mCharacter.getBirthday() instanceof OnceDayEvent) { OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[0]; inFirstStartTime = curOnceDayEventPlacement.day; inFirstEndTime = curOnceDayEventPlacement.day; } else { OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[0]; inFirstStartTime = curOncePeriodEventPlacement.startDay; inFirstEndTime = curOncePeriodEventPlacement.endDay; } if (this.mAtEvent instanceof OnceDayEvent) { OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[1]; inSecondStartTime = curOnceDayEventPlacement.day; inSecondEndTime = curOnceDayEventPlacement.day; } else { OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[1]; inSecondStartTime = curOncePeriodEventPlacement.startDay; inSecondEndTime = curOncePeriodEventPlacement.endDay; } DateTime lowerBoundOnBirthDay = inSecondStartTime.minusYears(this.upperBound).withHourOfDay(1); DateTime upperBoundOnBirthDay = inSecondStartTime.minusYears(this.lowerBound).withHourOfDay(23); DateTime lowerBoundOnEvent = inFirstEndTime.plusYears(this.lowerBound).withHourOfDay(1); DateTime upperBoundOnEvent = inFirstEndTime.plusYears(this.upperBound).withHourOfDay(23); if (inFirstEndTime.isBefore(lowerBoundOnBirthDay) || inSecondStartTime.isAfter(upperBoundOnEvent)) { return new Event[] { this.mCharacter.getBirthday() }; } if (inFirstEndTime.isAfter(upperBoundOnBirthDay) || inSecondStartTime.isBefore(lowerBoundOnEvent)) { return new Event[] { this.mAtEvent }; } return new Event[] {}; }
From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java
public boolean consistentWithConstraint(DateTime inFirstDay, DateTime inSecondDay) { DateTime lowerBoundOnBirthDay = inSecondDay.minusYears(this.mAgeGroup.upperBound).withHourOfDay(1); DateTime upperBoundOnBirthDay = inSecondDay.minusYears(this.mAgeGroup.lowerBound).withHourOfDay(23); DateTime lowerBoundOnEvent = inFirstDay.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1); DateTime upperBoundOnEvent = inFirstDay.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23); return !inFirstDay.isBefore(lowerBoundOnBirthDay) && !inFirstDay.isAfter(upperBoundOnBirthDay) && !inSecondDay.isBefore(lowerBoundOnEvent) && !inSecondDay.isAfter(upperBoundOnEvent); }
From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java
@Override public Event[] increaseWhat(Placement<?> inValues[]) { DateTime inFirstStartTime;/*w ww. j a v a2 s .c o m*/ DateTime inFirstEndTime; DateTime inSecondStartTime; DateTime inSecondEndTime; if (this.mCharacter.getBirthday() instanceof OnceDayEvent) { OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[0]; inFirstStartTime = curOnceDayEventPlacement.day; inFirstEndTime = curOnceDayEventPlacement.day; } else { OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[0]; inFirstStartTime = curOncePeriodEventPlacement.startDay; inFirstEndTime = curOncePeriodEventPlacement.endDay; } if (this.mAtEvent instanceof OnceDayEvent) { OnceDayEvent.OnceDayEventPlacement curOnceDayEventPlacement = (OnceDayEvent.OnceDayEventPlacement) inValues[1]; inSecondStartTime = curOnceDayEventPlacement.day; inSecondEndTime = curOnceDayEventPlacement.day; } else { OncePeriodEvent.OncePeriodEventPlacement curOncePeriodEventPlacement = (OncePeriodEvent.OncePeriodEventPlacement) inValues[1]; inSecondStartTime = curOncePeriodEventPlacement.startDay; inSecondEndTime = curOncePeriodEventPlacement.endDay; } DateTime lowerBoundOnBirthDay = inSecondStartTime.minusYears(this.mAgeGroup.upperBound).withHourOfDay(1); DateTime upperBoundOnBirthDay = inSecondStartTime.minusYears(this.mAgeGroup.lowerBound).withHourOfDay(23); DateTime lowerBoundOnEvent = inFirstEndTime.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1); DateTime upperBoundOnEvent = inFirstEndTime.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23); if (inFirstEndTime.isBefore(lowerBoundOnBirthDay) || inSecondStartTime.isAfter(upperBoundOnEvent)) { return new Event[] { this.mCharacter.getBirthday() }; } if (inFirstEndTime.isAfter(upperBoundOnBirthDay) || inSecondStartTime.isBefore(lowerBoundOnEvent)) { return new Event[] { this.mAtEvent }; } return new Event[] {}; }
From source file:TVShowTimelineMaker.timeConstraints.AgeGroupConstraint.java
@Override public boolean complexApplyConstraint() { boolean changed = this.applyConstraint(); OnceDayEvent birthDay = this.mCharacter.getBirthday(); if ((!birthDay.isMarkedForComplexEval()) && this.mAtEvent.isMarkedForComplexEval()) { birthDay.setUpForComplexEval();//from ww w. java 2 s . c o m } if (birthDay.isMarkedForComplexEval() && (!this.mAtEvent.isMarkedForComplexEval())) { this.mAtEvent.setUpForComplexEval(); } if (birthDay.isMarkedForComplexEval() && this.mAtEvent.isMarkedForComplexEval()) { NavigableSet<DateTime> birthDayDates = birthDay.getPossibleDays(); NavigableSet<DateTime> EventAtDates = this.mAtEvent.getPossibleDays(); DateTime lowerBoundOnBirthDay = EventAtDates.first().minusYears(this.mAgeGroup.upperBound) .withHourOfDay(1); DateTime upperBoundOnBirthDay = EventAtDates.first().minusYears(this.mAgeGroup.lowerBound) .withHourOfDay(23); Iterator<DateTime> birthDayIterator = birthDayDates.iterator(); Iterator<DateTime> EventAtDatesIterator = EventAtDates.iterator(); DateTime curBirthDay = birthDayIterator.next(); DateTime curEventAtDate = EventAtDatesIterator.next(); boolean cont = true; //while (birthDayIterator.hasNext()) { while (cont) { if (curBirthDay.isBefore(lowerBoundOnBirthDay)) { birthDayIterator.remove(); if (birthDayIterator.hasNext()) { curBirthDay = birthDayIterator.next(); } else { cont = false; } changed = true; } else if (curBirthDay.isAfter(upperBoundOnBirthDay)) { if (EventAtDatesIterator.hasNext()) { curEventAtDate = EventAtDatesIterator.next(); lowerBoundOnBirthDay = curEventAtDate.minusYears(this.mAgeGroup.upperBound) .withHourOfDay(1); upperBoundOnBirthDay = curEventAtDate.minusYears(this.mAgeGroup.lowerBound) .withHourOfDay(23); } else { birthDayIterator.remove(); if (birthDayIterator.hasNext()) { curBirthDay = birthDayIterator.next(); } else { cont = false; } changed = true; } } else { if (birthDayIterator.hasNext()) { curBirthDay = birthDayIterator.next(); } else { cont = false; } } } birthDayIterator = birthDayDates.iterator(); EventAtDatesIterator = EventAtDates.iterator(); curBirthDay = birthDayIterator.next(); curEventAtDate = EventAtDatesIterator.next(); cont = true; DateTime lowerBoundOnEvent = birthDayDates.first().plusYears(this.mAgeGroup.lowerBound) .withHourOfDay(1); DateTime upperBoundOnEvent = birthDayDates.first().plusYears(this.mAgeGroup.upperBound) .withHourOfDay(23); while (cont) { if (curEventAtDate.isBefore(lowerBoundOnEvent)) { EventAtDatesIterator.remove(); if (EventAtDatesIterator.hasNext()) { curEventAtDate = EventAtDatesIterator.next(); } else { cont = false; } changed = true; } else if (curEventAtDate.isAfter(upperBoundOnEvent)) { if (birthDayIterator.hasNext()) { curBirthDay = birthDayIterator.next(); lowerBoundOnEvent = curBirthDay.plusYears(this.mAgeGroup.lowerBound).withHourOfDay(1); upperBoundOnEvent = curBirthDay.plusYears(this.mAgeGroup.upperBound).withHourOfDay(23); } else { EventAtDatesIterator.remove(); if (EventAtDatesIterator.hasNext()) { curEventAtDate = EventAtDatesIterator.next(); } else { cont = false; } changed = true; } } else { if (EventAtDatesIterator.hasNext()) { curEventAtDate = EventAtDatesIterator.next(); } else { cont = false; } } } } return changed; }
From source file:TVShowTimelineMaker.timeConstraints.CharacterRelation.java
@Override public boolean complexApplyConstraint() { boolean changed = super.complexApplyConstraint(); if (this.mCharacterRelationKind.equals(CharacterRelationKind.MOTHER)) { if ((!this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval()) && this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval()) { this.mFirstNamedCharacter.getBirthday().setUpForComplexEval(); }/* w w w. j a va 2 s . c om*/ if (this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval() && (!this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval())) { this.mSecondNamedCharacter.getBirthday().setUpForComplexEval(); } if (this.mFirstNamedCharacter.getBirthday().isMarkedForComplexEval() && this.mSecondNamedCharacter.getBirthday().isMarkedForComplexEval()) { NavigableSet<DateTime> firstEpisodeDates = this.mFirstNamedCharacter.getBirthday() .getPossibleDays(); NavigableSet<DateTime> secondEpisodeDates = this.mSecondNamedCharacter.getBirthday() .getPossibleDays(); DateTime lowerBoundOnBirthDay1 = secondEpisodeDates.first().minusYears(START_OF_MENOPAUSE) .withHourOfDay(1); DateTime upperBoundOnBirthDay1 = secondEpisodeDates.first() .minus(this.mCharacterRelationKind.mPeriod).withHourOfDay(23); Iterator<DateTime> firstEpisodeDatesIterator = firstEpisodeDates.iterator(); Iterator<DateTime> secondEpisodeDatesIterator = secondEpisodeDates.iterator(); DateTime curFirstEpisodeDate = firstEpisodeDatesIterator.next(); DateTime curSecondEpisodeDate = secondEpisodeDatesIterator.next(); boolean cont = true; //while (indexInToFirstEpisodeDatesDates < firstEpisodeDates.size()) { while (cont) { if (curFirstEpisodeDate.isBefore(lowerBoundOnBirthDay1)) { firstEpisodeDatesIterator.remove(); if (firstEpisodeDatesIterator.hasNext()) { curFirstEpisodeDate = firstEpisodeDatesIterator.next(); } else { cont = false; } changed = true; } else if (curFirstEpisodeDate.isAfter(upperBoundOnBirthDay1)) { if (secondEpisodeDatesIterator.hasNext()) { curSecondEpisodeDate = secondEpisodeDatesIterator.next(); lowerBoundOnBirthDay1 = curSecondEpisodeDate.minusYears(START_OF_MENOPAUSE) .withHourOfDay(1); upperBoundOnBirthDay1 = curSecondEpisodeDate.minus(this.mCharacterRelationKind.mPeriod) .withHourOfDay(23); } else { firstEpisodeDatesIterator.remove(); if (firstEpisodeDatesIterator.hasNext()) { curFirstEpisodeDate = firstEpisodeDatesIterator.next(); } else { cont = false; } changed = true; } } else { if (firstEpisodeDatesIterator.hasNext()) { curFirstEpisodeDate = firstEpisodeDatesIterator.next(); } else { cont = false; } } } firstEpisodeDatesIterator = firstEpisodeDates.iterator(); secondEpisodeDatesIterator = secondEpisodeDates.iterator(); curFirstEpisodeDate = firstEpisodeDatesIterator.next(); curSecondEpisodeDate = secondEpisodeDatesIterator.next(); cont = true; DateTime lowerBoundOnBirthDay2 = firstEpisodeDates.first().plus(this.mCharacterRelationKind.mPeriod) .withHourOfDay(1); DateTime upperBoundOnBirthDay2 = firstEpisodeDates.first().plusYears(START_OF_MENOPAUSE) .withHourOfDay(23); while (cont) { if (curSecondEpisodeDate.isBefore(lowerBoundOnBirthDay2)) { secondEpisodeDatesIterator.remove(); if (secondEpisodeDatesIterator.hasNext()) { curSecondEpisodeDate = secondEpisodeDatesIterator.next(); } else { cont = false; } changed = true; } else if (curSecondEpisodeDate.isAfter(upperBoundOnBirthDay2)) { if (firstEpisodeDatesIterator.hasNext()) { curFirstEpisodeDate = firstEpisodeDatesIterator.next(); lowerBoundOnBirthDay2 = curFirstEpisodeDate.plus(this.mCharacterRelationKind.mPeriod) .withHourOfDay(1); upperBoundOnBirthDay2 = curFirstEpisodeDate.plusYears(START_OF_MENOPAUSE) .withHourOfDay(23); } else { secondEpisodeDatesIterator.remove(); if (secondEpisodeDatesIterator.hasNext()) { curSecondEpisodeDate = secondEpisodeDatesIterator.next(); } else { cont = false; } changed = true; } } else { if (secondEpisodeDatesIterator.hasNext()) { curSecondEpisodeDate = secondEpisodeDatesIterator.next(); } else { cont = false; } } } } } return changed; }