Skip to content

Commit 74e45fd

Browse files
authored
Merge pull request #32 from DevourTech/feature/core-27
#27 Added Assignment and Submission classes
2 parents 9f88a91 + 23ab6f4 commit 74e45fd

File tree

7 files changed

+211
-2
lines changed

7 files changed

+211
-2
lines changed

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
<groupId>org.cms</groupId>
1515
<artifactId>core</artifactId>
16-
<version>1.2.1</version>
16+
<version>1.2.2</version>
1717

1818
<properties>
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
@@ -25,7 +25,7 @@
2525
<repository>
2626
<id>github</id>
2727
<name>Github Packages</name>
28-
<url>https://maven.pkg.github.com/rohan23chhabra/cms-core</url>
28+
<url>https://maven.pkg.github.com/DevourTech/cms-core</url>
2929
</repository>
3030
</distributionManagement>
3131

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package org.cms.core.commons;
2+
3+
public class DateTimePattern {
4+
5+
public static final String YYYY_MM_DD_HH_MM = "yyyy-MM-dd HH:mm";
6+
}

src/main/java/org/cms/core/course/Course.java

+8
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.fasterxml.jackson.annotation.JsonIgnore;
44
import java.io.Serializable;
5+
import java.util.Arrays;
56
import java.util.List;
67
import javax.persistence.*;
78
import org.cms.core.instructor.Instructor;
@@ -22,6 +23,9 @@ public class Course implements Serializable {
2223
private String branch;
2324
private String description;
2425

26+
@Transient
27+
private static List<String> branches = Arrays.asList("CSE", "ECE", "IT", "BIO");
28+
2529
@JsonIgnore
2630
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "subscribedCourses")
2731
private List<Student> students;
@@ -77,6 +81,10 @@ public void setDescription(String description) {
7781
this.description = description;
7882
}
7983

84+
public static List<String> getBranches() {
85+
return branches;
86+
}
87+
8088
@Override
8189
public String toString() {
8290
return "Course{" + "id=" + id + ", name='" + name + '\'' + ", description='" + description + '\'' + '}';
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
package org.cms.core.files.assignment;
2+
3+
import java.io.Serializable;
4+
import javax.persistence.*;
5+
import org.cms.core.course.Course;
6+
import org.cms.core.instructor.Instructor;
7+
import org.hibernate.annotations.GenericGenerator;
8+
9+
@Entity
10+
@Table(name = "assignment")
11+
public class Assignment implements Serializable {
12+
13+
@OneToOne
14+
private Instructor instructor;
15+
16+
private String downloadPath;
17+
18+
@OneToOne
19+
private Course course;
20+
21+
private String uploadDate;
22+
private String dueDate;
23+
24+
@Id
25+
@GenericGenerator(name = "assignment_id_generator", strategy = "org.cms.core.files.assignment.AssignmentIdGenerator")
26+
@GeneratedValue(generator = "assignment_id_generator")
27+
private String id;
28+
29+
public Assignment() {}
30+
31+
public Assignment(Instructor instructor, String downloadPath, Course course) {
32+
this.instructor = instructor;
33+
this.downloadPath = downloadPath;
34+
this.course = course;
35+
}
36+
37+
public Instructor getInstructor() {
38+
return instructor;
39+
}
40+
41+
public void setInstructor(Instructor instructor) {
42+
this.instructor = instructor;
43+
}
44+
45+
public String getDownloadPath() {
46+
return downloadPath;
47+
}
48+
49+
public void setDownloadPath(String downloadPath) {
50+
this.downloadPath = downloadPath;
51+
}
52+
53+
public Course getCourse() {
54+
return course;
55+
}
56+
57+
public void setCourse(Course course) {
58+
this.course = course;
59+
}
60+
61+
public String getUploadDate() {
62+
return uploadDate;
63+
}
64+
65+
public void setUploadDate(String uploadDate) {
66+
this.uploadDate = uploadDate;
67+
}
68+
69+
public String getDueDate() {
70+
return dueDate;
71+
}
72+
73+
public void setDueDate(String dueDate) {
74+
this.dueDate = dueDate;
75+
}
76+
77+
public String getId() {
78+
return id;
79+
}
80+
81+
public void setId(String id) {
82+
this.id = id;
83+
}
84+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.cms.core.files.assignment;
2+
3+
import java.io.Serializable;
4+
import org.cms.core.commons.CommonIdGenerator;
5+
import org.hibernate.HibernateException;
6+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
7+
import org.hibernate.id.IdentifierGenerator;
8+
9+
public class AssignmentIdGenerator implements IdentifierGenerator {
10+
11+
@Override
12+
public Serializable generate(SharedSessionContractImplementor sharedSessionContractImplementor, Object o) throws HibernateException {
13+
String prefix = "ASGN";
14+
//language=SQL
15+
String sql = "select count(*) from org_cms.assignment";
16+
return CommonIdGenerator.generateId(prefix, sql, sharedSessionContractImplementor);
17+
}
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
package org.cms.core.files.submission;
2+
3+
import java.io.Serializable;
4+
import javax.persistence.*;
5+
import org.cms.core.files.assignment.Assignment;
6+
import org.cms.core.student.Student;
7+
import org.hibernate.annotations.GenericGenerator;
8+
9+
@Entity
10+
@Table(name = "submission")
11+
public class Submission implements Serializable {
12+
13+
@Id
14+
@GenericGenerator(name = "submission_id_generator", strategy = "org.cms.core.files.submission.SubmissionIdGenerator")
15+
@GeneratedValue(generator = "submission_id_generator")
16+
private String id;
17+
18+
@OneToOne
19+
private Assignment assignment;
20+
21+
@OneToOne
22+
private Student student;
23+
24+
private String downloadPath;
25+
26+
private String uploadDate;
27+
28+
public Submission() {}
29+
30+
public String getId() {
31+
return id;
32+
}
33+
34+
public void setId(String id) {
35+
this.id = id;
36+
}
37+
38+
public Assignment getAssignment() {
39+
return assignment;
40+
}
41+
42+
public void setAssignment(Assignment assignment) {
43+
this.assignment = assignment;
44+
}
45+
46+
public Student getStudent() {
47+
return student;
48+
}
49+
50+
public void setStudent(Student student) {
51+
this.student = student;
52+
}
53+
54+
public String getDownloadPath() {
55+
return downloadPath;
56+
}
57+
58+
public void setDownloadPath(String downloadPath) {
59+
this.downloadPath = downloadPath;
60+
}
61+
62+
public String getUploadDate() {
63+
return uploadDate;
64+
}
65+
66+
public void setUploadDate(String uploadDate) {
67+
this.uploadDate = uploadDate;
68+
}
69+
70+
public Submission(Assignment assignment, Student student, String downloadPath) {
71+
this.assignment = assignment;
72+
this.student = student;
73+
this.downloadPath = downloadPath;
74+
}
75+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.cms.core.files.submission;
2+
3+
import java.io.Serializable;
4+
import org.cms.core.commons.CommonIdGenerator;
5+
import org.hibernate.HibernateException;
6+
import org.hibernate.engine.spi.SharedSessionContractImplementor;
7+
import org.hibernate.id.IdentifierGenerator;
8+
9+
public class SubmissionIdGenerator implements IdentifierGenerator {
10+
11+
@Override
12+
public Serializable generate(SharedSessionContractImplementor sharedSessionContractImplementor, Object o) throws HibernateException {
13+
String prefix = "SUBM";
14+
//language=SQL
15+
String sql = "select count(*) from org_cms.submission";
16+
return CommonIdGenerator.generateId(prefix, sql, sharedSessionContractImplementor);
17+
}
18+
}

0 commit comments

Comments
 (0)