Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
128 changes: 64 additions & 64 deletions gedcomx-date/src/test/java/org/gedcomx/date/UtilTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -121,11 +121,11 @@ void shouldOverflowSeconds() {
new GedcomxDateSimple("+0999-12-31T23:59:59"),
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getDays()).isEqualTo(null);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isNull();
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isEqualTo(1);
}

Expand All @@ -135,12 +135,12 @@ void shouldOverflowMinutes() {
new GedcomxDateSimple("+0999-12-31T23:59:00"),
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getDays()).isEqualTo(null);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isNull();
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isEqualTo(1);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand All @@ -149,12 +149,12 @@ void shouldOverflowHours() {
new GedcomxDateSimple("+0999-12-31T23:00:00"),
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getDays()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isNull();
assertThat(duration.getHours()).isEqualTo(1);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand All @@ -163,12 +163,12 @@ void shouldOverflowDays() {
new GedcomxDateSimple("+0999-12-31T00:00:00"),
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isEqualTo(1);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand All @@ -177,12 +177,12 @@ void shouldOverflowMonths() {
new GedcomxDateSimple("+0999-12-01T00:00:00"),
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isEqualTo(1);
assertThat(duration.getDays()).isEqualTo(null);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getDays()).isNull();
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand All @@ -192,11 +192,11 @@ void shouldOverflowYears() {
new GedcomxDateSimple("+1000-01-01T00:00:00"));

assertThat(duration.getYears()).isEqualTo(1);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getDays()).isEqualTo(null);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isNull();
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand Down Expand Up @@ -260,12 +260,12 @@ void shouldCalcTrickyDuration() {
new GedcomxDateSimple("+1973-02-01"));

assertThat(duration.getYears()).isEqualTo(3);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getMonths()).isNull();
// All of the 31st and all of the 1st.
assertThat(duration.getDays()).isEqualTo(2);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();
}

@Test
Expand All @@ -275,12 +275,12 @@ void shouldCalcSimpleDuration() {

GedcomxDateDuration duration = ((GedcomxDateRange)date).getDuration();

assertThat(duration.getYears()).isEqualTo(null);
assertThat(duration.getMonths()).isEqualTo(null);
assertThat(duration.getYears()).isNull();
assertThat(duration.getMonths()).isNull();
assertThat(duration.getDays()).isEqualTo(1);
assertThat(duration.getHours()).isEqualTo(null);
assertThat(duration.getMinutes()).isEqualTo(null);
assertThat(duration.getSeconds()).isEqualTo(null);
assertThat(duration.getHours()).isNull();
assertThat(duration.getMinutes()).isNull();
assertThat(duration.getSeconds()).isNull();

GedcomxDateSimple endDate = ((GedcomxDateRange)date).getEnd();
assertThat(endDate.getYear()).isEqualTo(1970);
Expand Down Expand Up @@ -363,7 +363,7 @@ void shouldAddMinutes() {
assertThat(simple.getDay()).isEqualTo(1);
assertThat(simple.getHours()).isEqualTo(1);
assertThat(simple.getMinutes()).isEqualTo(30);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -376,8 +376,8 @@ void shouldAddHours() {
assertThat(simple.getMonth()).isEqualTo(1);
assertThat(simple.getDay()).isEqualTo(3);
assertThat(simple.getHours()).isEqualTo(2);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -389,9 +389,9 @@ void shouldAddDays() {
assertThat(simple.getYear()).isEqualTo(2004);
assertThat(simple.getMonth()).isEqualTo(3);
assertThat(simple.getDay()).isEqualTo(3);
assertThat(simple.getHours()).isEqualTo(null);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getHours()).isNull();
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -403,9 +403,9 @@ void shouldAddYearsWorthOfDays() {
assertThat(simple.getYear()).isEqualTo(2002);
assertThat(simple.getMonth()).isEqualTo(1);
assertThat(simple.getDay()).isEqualTo(2);
assertThat(simple.getHours()).isEqualTo(null);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getHours()).isNull();
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -416,10 +416,10 @@ void shouldAddMonths() {

assertThat(simple.getYear()).isEqualTo(1002);
assertThat(simple.getMonth()).isEqualTo(2);
assertThat(simple.getDay()).isEqualTo(null);
assertThat(simple.getHours()).isEqualTo(null);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getDay()).isNull();
assertThat(simple.getHours()).isNull();
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -429,11 +429,11 @@ void shouldAddYears() {
new GedcomxDateDuration("P20Y"));

assertThat(simple.getYear()).isEqualTo(19);
assertThat(simple.getMonth()).isEqualTo(null);
assertThat(simple.getDay()).isEqualTo(null);
assertThat(simple.getHours()).isEqualTo(null);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getMonth()).isNull();
assertThat(simple.getDay()).isNull();
assertThat(simple.getHours()).isNull();
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand All @@ -443,11 +443,11 @@ void shouldAddNegativeYears() {
new GedcomxDateDuration("P200Y"));

assertThat(simple.getYear()).isEqualTo(-800);
assertThat(simple.getMonth()).isEqualTo(null);
assertThat(simple.getDay()).isEqualTo(null);
assertThat(simple.getHours()).isEqualTo(null);
assertThat(simple.getMinutes()).isEqualTo(null);
assertThat(simple.getSeconds()).isEqualTo(null);
assertThat(simple.getMonth()).isNull();
assertThat(simple.getDay()).isNull();
assertThat(simple.getHours()).isNull();
assertThat(simple.getMinutes()).isNull();
assertThat(simple.getSeconds()).isNull();
}

@Test
Expand Down Expand Up @@ -497,9 +497,9 @@ void successOnValidDurations() {
@Test
void errorOnInvalidMonth() {
try {
GedcomxDateUtil.daysInMonth(13, 2000);
YearMonth.of(2000, 13).lengthOfMonth();
fail("GedcomxDateException expected because 13 is not a month");
} catch(GedcomxDateException e) {
} catch(DateTimeException e) {
assertThat(e.getMessage()).isEqualTo("Invalid value for MonthOfYear (valid values 1 - 12): 13");
}
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
/**
* Copyright Intellectual Reserve, Inc.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.gedcomx.conclusion;

import org.gedcomx.types.CalendarType;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.webcohesion.enunciate.metadata.qname.XmlQNameEnumRef;

/**
* Represents a date expressed in an alternate calendar system.
* <p>
* An {@code AlternateCalendarDate} is included within a {@link Date} object's alternateCalendars list to express the
* same date in a calendar other than the proleptic Gregorian calendar. The main {@code Date} should always be
* in the proleptic Gregorian calendar, and any alternate representations (e.g., Hebrew, Rumi, Julian)
* should be provided as {@code AlternateCalendarDate} instances.
* </p>
*/
@JsonInclude(JsonInclude.Include.NON_NULL)
public class AlternateCalendarDate extends Date {
public AlternateCalendarDate() {
// Default constructor
}

/**
* The calendar system used to interpret this date (e.g., Hebrew, Rumi, Julian).
* This value indicates which calendar should be used to interpret the date values in this object.
*/
private CalendarType calendar;

public AlternateCalendarDate(CalendarType calendar) {
this.calendar = calendar;
}

public AlternateCalendarDate(AlternateCalendarDate copy) {
super(copy);
this.calendar = copy.calendar;
}

/**
* Gets the calendar system used to interpret this date.
*
* @return The calendar system for this alternate date.
*/
@XmlQNameEnumRef(CalendarType.class)
public CalendarType getCalendar() {
return calendar;
}

/**
* Sets the calendar system used to interpret this date.
*
* @param calendar The calendar system for this alternate date.
*/
public void setCalendar(CalendarType calendar) {
this.calendar = calendar;
}

/**
* Build up the AlternateCalendarDate with the calendar system.
*
* @param calendar The calendar system for this alternate date.
* @return this.
*/
public AlternateCalendarDate calendar(CalendarType calendar) {
setCalendar(calendar);
return this;
}

@Override
public String toString() {
return "Date{" + "original='" + getOriginal() + '\'' + ", formal=" + getFormal() + ", calendar=" + calendar + '}';
}
}
Loading