CourseInfo.java
package edu.ucsb.cs156.courses.documents;
import java.util.List;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* CourseInfo is an object that stores all of the information about a course from the UCSB Courses
* API except for the section info
*/
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CourseInfo implements Cloneable {
private String quarter;
private String courseId;
private String title;
private String description;
private List<GeneralEducation> generalEducation;
public String ges() {
if (generalEducation == null) {
return "";
}
List<String> gesAsListOfStrings =
generalEducation.stream().map(GeneralEducation::toString).collect(Collectors.toList());
return String.join(", ", gesAsListOfStrings);
}
public Object clone() throws CloneNotSupportedException {
CourseInfo newCourseInfo = (CourseInfo) super.clone();
return newCourseInfo;
}
}