Skip to content

Commit

Permalink
Merge pull request #591 from bcgov/GRAD2-2132
Browse files Browse the repository at this point in the history
GRAD2-2132
  • Loading branch information
kamal-mohammed authored Jun 23, 2023
2 parents c5afbc4 + c27e944 commit 840870e
Show file tree
Hide file tree
Showing 9 changed files with 51 additions and 23 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,25 @@
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;


public class GraduationData implements Serializable {
private Date graduationDate;
private LocalDate graduationDate;
private boolean honorsFlag;
private boolean dogwoodFlag;
private List<String> programCodes = new ArrayList<>();
private List<String> programNames = new ArrayList<>();
private String totalCreditsUsedForGrad = "";

@JsonFormat(pattern= ReportApiConstants.DEFAULT_DATE_FORMAT)
public Date getGraduationDate() {
public LocalDate getGraduationDate() {
return graduationDate;
}

public void setGraduationDate(Date value) {
public void setGraduationDate(LocalDate value) {
this.graduationDate = value;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,13 @@
import ca.bc.gov.educ.grad.report.api.util.ReportApiConstants;
import ca.bc.gov.educ.grad.report.model.common.support.AbstractDomainEntity;
import ca.bc.gov.educ.grad.report.model.transcript.GraduationData;
import ca.bc.gov.educ.grad.report.utils.DateUtils;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import static java.lang.Boolean.FALSE;
Expand All @@ -43,7 +44,7 @@ public class GraduationDataImpl extends AbstractDomainEntity
/**
* null means that the student hasn't graduated.
*/
private Date graduationDate;
private LocalDate graduationDate;
private Boolean honorsFlag = FALSE;
private Boolean dogwoodFlag = FALSE;
private List<String> programCodes = new ArrayList<>();
Expand All @@ -62,28 +63,28 @@ public boolean hasGraduated() {

@Override
@JsonFormat(pattern= ReportApiConstants.DEFAULT_DATE_FORMAT)
public Date getGraduationDate() {
return this.graduationDate == null ? new Date() : this.graduationDate;
public LocalDate getGraduationDate() {
return this.graduationDate == null ? LocalDate.now() : this.graduationDate;
}

public void setGraduationDate(Date graduationDate) {
public void setGraduationDate(LocalDate graduationDate) {
this.graduationDate = graduationDate;
}

public String getTruncatedGraduationDate() {
Date result = getGraduationDate();
LocalDate result = getGraduationDate();
if(result != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM");
return sdf.format(result);
return sdf.format(DateUtils.toDate(result));
}
return null;
}

public String getFullGraduationDate() {
Date result = getGraduationDate();
LocalDate result = getGraduationDate();
if(result != null) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
return sdf.format(result);
return sdf.format(DateUtils.toDate(result));
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ public class StudentInfoImpl implements StudentInfo {
private Boolean honourFlag = Boolean.FALSE;
private Boolean dogwoodFlag = Boolean.FALSE;
private String grade = "";
private Date gradDate = new Date(0L);
private LocalDate gradDate;
private String gradProgram = "";
private String gradReqYear = "";
private final List<String> academicProgram = new ArrayList<>();
Expand Down Expand Up @@ -151,7 +151,7 @@ public StudentInfoImpl(
final String citizenship,
final String mincode,
final String studGrade,
final Date gradDate,
final LocalDate gradDate,
final String gradProgram,
final String gradReqYear,
final String gradMessage,
Expand Down Expand Up @@ -362,7 +362,7 @@ public void setNonGradReasons(final Map<String, String> reasons) {
}

@Override
public Date getGradDate() {
public LocalDate getGradDate() {
return this.gradDate;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import ca.bc.gov.educ.grad.report.model.graduation.GradProgram;
import ca.bc.gov.educ.grad.report.model.graduation.GraduationProgramCode;
import ca.bc.gov.educ.grad.report.model.graduation.NonGradReason;
import ca.bc.gov.educ.grad.report.utils.DateUtils;
import jakarta.validation.ConstraintViolation;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
Expand All @@ -29,6 +30,7 @@
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.logging.Level;
import java.util.logging.Logger;
Expand Down Expand Up @@ -399,10 +401,10 @@ public static AcademicAward adapt(
validate(graduationProgramCode, "graduation program code");

final SimpleDateFormat sdf = new SimpleDateFormat(DATE_ISO_8601_YMD);
final Date graduationDate = academicAward.getGraduationDate();
final LocalDate graduationDate = academicAward.getGraduationDate();

// When empty, the corresponding PESC XML document element is suppressed.
final String graduationDateFormatted = academicAward.hasGraduated() ? sdf.format(graduationDate) : "";
final String graduationDateFormatted = academicAward.hasGraduated() ? sdf.format(DateUtils.toDate(graduationDate)) : "";

return new AcademicAward.Builder()
.withGraduationDate(graduationDateFormatted)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ public interface StudentInfo {
*
* @return graduation date
*/
Date getGradDate();
LocalDate getGradDate();

/**
* get the graduation program the student is associated with. This outlines
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@

import ca.bc.gov.educ.grad.report.model.common.DomainEntity;

import java.util.Date;
import java.time.LocalDate;
import java.util.List;

/**
Expand All @@ -46,7 +46,7 @@ public interface GraduationData extends DomainEntity {
*
* @return Date of graduation.
*/
Date getGraduationDate();
LocalDate getGraduationDate();

/**
* Get the truncated date the student graduated in the form of yyyy/MM. This will return the current date if
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,7 @@
import java.io.IOException;
import java.io.InputStream;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.Future;
import java.util.logging.Level;
Expand Down Expand Up @@ -774,7 +775,7 @@ private GraduationData adaptGraduationData(

final GraduationData graduationData = new GraduationDataImpl();

Date gradDate = studentInfo.getGradDate();
LocalDate gradDate = studentInfo.getGradDate();

((GraduationDataImpl) graduationData).setGraduationDate(gradDate);
((GraduationDataImpl) graduationData).setHonorsFlag(studentInfo.isHonourFlag());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@

import java.io.IOException;
import java.text.NumberFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.Future;
import java.util.logging.Level;
Expand Down Expand Up @@ -657,7 +658,7 @@ private GraduationData adaptGraduationData(

final GraduationData graduationData = new GraduationDataImpl();

Date gradDate = studentInfo.getGradDate();
LocalDate gradDate = studentInfo.getGradDate();

((GraduationDataImpl) graduationData).setGraduationDate(gradDate);
((GraduationDataImpl) graduationData).setHonorsFlag(studentInfo.isHonourFlag());
Expand Down
23 changes: 23 additions & 0 deletions api/src/main/java/ca/bc/gov/educ/grad/report/utils/DateUtils.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
package ca.bc.gov.educ.grad.report.utils;

import java.time.LocalDate;
import java.time.ZoneId;
import java.util.Date;

public class DateUtils {

private DateUtils(){}

public static LocalDate toLocalDate(Date date) {
return date.toInstant()
.atZone(ZoneId.systemDefault())
.toLocalDate();
}

public static Date toDate(LocalDate localDate) {
return java.util.Date.from(localDate.atStartOfDay()
.atZone(ZoneId.systemDefault())
.toInstant());
}

}

0 comments on commit 840870e

Please sign in to comment.