Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Franz Reischl
tomcat-miniREST
Commits
41439c68
Commit
41439c68
authored
Jan 08, 2019
by
Franz Reischl
🏖
Browse files
Merge branch 'master' into combination
parents
816f04f9
b2e75f59
Changes
18
Hide whitespace changes
Inline
Side-by-side
src/main/java/university/at/jku/ce/Database.java
deleted
100644 → 0
View file @
816f04f9
package
university.at.jku.ce
;
import
java.util.HashMap
;
import
java.util.Map
;
import
university.at.jku.ce.model.Student
;
import
university.at.jku.ce.model.Study
;
import
university.at.jku.ce.model.Subject
;
public
class
Database
{
private
static
Map
<
Long
,
Student
>
students
=
new
HashMap
<
Long
,
Student
>();
private
static
Map
<
Long
,
Subject
>
subjects
=
new
HashMap
<
Long
,
Subject
>();
private
static
Map
<
Long
,
Study
>
studies
=
new
HashMap
<
Long
,
Study
>();
public
static
Map
<
Long
,
Student
>
getStudents
()
{
return
students
;
}
public
static
Map
<
Long
,
Subject
>
getSubjects
()
{
return
subjects
;
}
public
static
Map
<
Long
,
Study
>
getStudies
()
{
return
studies
;
}
}
src/main/java/university/at/jku/ce/dao/StudyDao.java
0 → 100644
View file @
41439c68
package
university.at.jku.ce.dao
;
import
java.util.Map
;
import
university.at.jku.ce.model.Study
;
public
interface
StudyDao
{
public
abstract
Map
<
Long
,
Study
>
getAllStudies
(
String
name
);
public
abstract
Study
getStudy
(
Long
id
);
public
abstract
Study
addStudy
(
Study
study
);
public
abstract
Study
updateStudy
(
Study
study
);
public
abstract
void
removeStudy
(
long
studyId
);
}
src/main/java/university/at/jku/ce/dao/SubjectDao.java
0 → 100644
View file @
41439c68
package
university.at.jku.ce.dao
;
import
java.util.Map
;
import
university.at.jku.ce.model.Subject
;
public
interface
SubjectDao
{
public
abstract
Map
<
Long
,
Subject
>
getAllSubjects
(
Long
studyId
);
public
abstract
Subject
getSubject
(
long
studyId
,
long
id
);
public
abstract
Subject
addSubject
(
long
studyId
,
Subject
subject
);
public
abstract
Subject
updateSubject
(
long
studyId
,
Subject
subject
);
public
abstract
void
removeSubject
(
long
studyId
,
long
id
);
}
src/main/java/university/at/jku/ce/dao/TextStudyDao.java
0 → 100644
View file @
41439c68
package
university.at.jku.ce.dao
;
import
java.io.BufferedReader
;
import
java.io.BufferedWriter
;
import
java.io.FileReader
;
import
java.io.FileWriter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.Map
;
import
university.at.jku.ce.model.Study
;
public
class
TextStudyDao
implements
StudyDao
{
Map
<
Long
,
Study
>
studies
;
@Override
public
Map
<
Long
,
Study
>
getAllStudies
(
String
name
)
{
ArrayList
<
String
>
lineList
=
new
ArrayList
<
String
>();
studies
=
new
HashMap
<
Long
,
Study
>();
try
{
FileReader
fr
=
new
FileReader
(
"C:\\Users\\Michael\\development\\workspace-ce5\\at.jku.ce\\src\\main\\resources\\Studies.txt"
);
BufferedReader
br
=
new
BufferedReader
(
fr
);
String
line
=
""
;
do
{
line
=
br
.
readLine
();
lineList
.
add
(
line
);
}
while
(
line
!=
null
);
br
.
close
();
}
catch
(
Throwable
t
)
{
t
.
printStackTrace
();}
for
(
String
s:
lineList
)
{
if
(
s
!=
null
)
{
int
i
=
0
;
Long
studyId
;
String
studyName
;
StringBuilder
b
=
new
StringBuilder
();
while
(
s
.
charAt
(
i
)!=
'|'
)
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
studyId
=
Long
.
parseLong
(
b
.
toString
());
b
=
new
StringBuilder
();
i
++;
while
(
i
<
s
.
length
())
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
studyName
=
b
.
toString
();
if
(
name
==
null
||
name
.
equals
(
""
))
{
studies
.
put
(
studyId
,
new
Study
(
studyId
,
studyName
));
}
else
{
if
(
studyName
.
contains
(
name
))
{
studies
.
put
(
studyId
,
new
Study
(
studyId
,
studyName
));
}
}
}
}
return
studies
;
}
@Override
public
Study
getStudy
(
Long
id
)
{
studies
=
getAllStudies
(
null
);
return
studies
.
get
(
id
);
}
@Override
public
Study
addStudy
(
Study
study
)
{
studies
=
getAllStudies
(
null
);
study
.
setStudyId
(
getNextId
());
studies
.
put
(
study
.
getStudyId
(),
study
);
write
();
return
study
;
}
@Override
public
Study
updateStudy
(
Study
study
)
{
studies
=
getAllStudies
(
null
);
if
(
studies
.
containsKey
(
study
.
getStudyId
()))
{
studies
.
put
(
study
.
getStudyId
(),
study
);
}
write
();
return
study
;
}
@Override
public
void
removeStudy
(
long
studyId
)
{
studies
=
getAllStudies
(
null
);
studies
.
remove
(
studyId
);
write
();
}
void
write
()
{
try
{
FileWriter
fw
=
new
FileWriter
(
"C:\\Users\\Michael\\development\\workspace-ce5\\at.jku.ce\\src\\main\\resources\\Studies.txt"
);
BufferedWriter
bw
=
new
BufferedWriter
(
fw
);
String
n
=
System
.
getProperty
(
"line.separator"
);
ArrayList
<
String
>
lineList
=
new
ArrayList
<
String
>();
for
(
Study
s:
studies
.
values
())
{
StringBuilder
b
=
new
StringBuilder
();
b
.
append
(
s
.
getStudyId
());
b
.
append
(
"|"
);
b
.
append
(
s
.
getName
());
lineList
.
add
(
b
.
toString
());
}
for
(
String
s:
lineList
)
{
bw
.
write
(
s
);
bw
.
write
(
n
);}
bw
.
close
();
}
catch
(
Throwable
t
)
{
t
.
printStackTrace
();}
}
public
long
getNextId
()
{
long
nextId
=
0
;
for
(
Study
s:
studies
.
values
())
{
if
(
s
.
getStudyId
()>
nextId
)
{
nextId
=
s
.
getStudyId
();
}
}
return
nextId
+
1
;
}
}
src/main/java/university/at/jku/ce/dao/TextSubjectDao.java
0 → 100644
View file @
41439c68
package
university.at.jku.ce.dao
;
import
java.io.BufferedReader
;
import
java.io.BufferedWriter
;
import
java.io.FileReader
;
import
java.io.FileWriter
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map.Entry
;
import
university.at.jku.ce.model.Study
;
import
university.at.jku.ce.model.Subject
;
public
class
TextSubjectDao
implements
SubjectDao
{
Map
<
Long
,
Subject
>
subjects
;
Map
<
SubjectId
,
Subject
>
allSubjects
;
class
SubjectId
{
Long
studyId
;
Long
subjectId
;
SubjectId
(
Long
studyId
,
Long
subjectId
)
{
this
.
studyId
=
studyId
;
this
.
subjectId
=
subjectId
;
}
@Override
public
boolean
equals
(
Object
o
)
{
if
(
o
instanceof
SubjectId
)
{
SubjectId
si
=(
SubjectId
)
o
;
if
(
this
.
studyId
.
equals
(
si
.
studyId
)&&
this
.
subjectId
.
equals
(
si
.
subjectId
))
return
true
;
}
return
false
;
}
@Override
public
int
hashCode
()
{
int
code
=(
int
)
(((
studyId
+
subjectId
)*(
studyId
+
subjectId
+
1
))/
2
+
subjectId
);
return
code
;
}
}
@Override
public
Map
<
Long
,
Subject
>
getAllSubjects
(
Long
studyId
)
{
ArrayList
<
String
>
lineList
=
new
ArrayList
<
String
>();
allSubjects
=
new
HashMap
<
SubjectId
,
Subject
>();
subjects
=
new
HashMap
<
Long
,
Subject
>();
try
{
FileReader
fr
=
new
FileReader
(
"C:\\Users\\Michael\\development\\workspace-ce5\\at.jku.ce\\src\\main\\resources\\Subjects.txt"
);
BufferedReader
br
=
new
BufferedReader
(
fr
);
String
line
=
""
;
do
{
line
=
br
.
readLine
();
lineList
.
add
(
line
);
}
while
(
line
!=
null
);
br
.
close
();
}
catch
(
Throwable
t
)
{
t
.
printStackTrace
();}
for
(
String
s:
lineList
)
{
if
(
s
!=
null
)
{
int
i
=
0
;
Long
textStudyId
;
Long
id
;
String
subjectName
;
String
subjectDesc
;
StringBuilder
b
=
new
StringBuilder
();
while
(
s
.
charAt
(
i
)!=
'|'
)
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
textStudyId
=
Long
.
parseLong
(
b
.
toString
());
b
=
new
StringBuilder
();
i
++;
while
(
s
.
charAt
(
i
)!=
'|'
)
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
id
=
Long
.
parseLong
(
b
.
toString
());
b
=
new
StringBuilder
();
i
++;
while
(
s
.
charAt
(
i
)!=
'|'
)
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
subjectName
=
b
.
toString
();
b
=
new
StringBuilder
();
i
++;
while
(
i
<
s
.
length
())
{
b
.
append
(
s
.
charAt
(
i
));
i
++;
}
subjectDesc
=
b
.
toString
();
Subject
subject
=
new
Subject
(
id
,
subjectName
,
subjectDesc
);
if
(
studyId
==
textStudyId
)
{
subjects
.
put
(
id
,
subject
);
}
allSubjects
.
put
(
new
SubjectId
(
textStudyId
,
id
),
subject
);
}
}
return
subjects
;
}
@Override
public
Subject
getSubject
(
long
studyId
,
long
id
)
{
subjects
=
getAllSubjects
(
studyId
);
return
subjects
.
get
(
id
);
}
@Override
public
Subject
addSubject
(
long
studyId
,
Subject
subject
)
{
subjects
=
getAllSubjects
(
studyId
);
subject
.
setId
(
getNextId
());
subjects
.
put
(
subject
.
getId
(),
subject
);
allSubjects
.
put
(
new
SubjectId
(
studyId
,
subject
.
getId
()),
subject
);
write
();
return
subject
;
}
@Override
public
Subject
updateSubject
(
long
studyId
,
Subject
subject
)
{
subjects
=
getAllSubjects
(
studyId
);
subjects
.
put
(
subject
.
getId
(),
subject
);
allSubjects
.
put
(
new
SubjectId
(
studyId
,
subject
.
getId
()),
subject
);
write
();
return
subject
;
}
@Override
public
void
removeSubject
(
long
studyId
,
long
id
)
{
subjects
=
getAllSubjects
(
studyId
);
subjects
.
remove
(
id
);
allSubjects
.
remove
(
new
SubjectId
(
studyId
,
id
));
write
();
}
void
write
()
{
ArrayList
<
String
>
lineList
=
new
ArrayList
<
String
>();
try
{
FileWriter
fw
=
new
FileWriter
(
"C:\\Users\\Michael\\development\\workspace-ce5\\at.jku.ce\\src\\main\\resources\\Subjects.txt"
);
BufferedWriter
bw
=
new
BufferedWriter
(
fw
);
String
n
=
System
.
getProperty
(
"line.separator"
);
for
(
Entry
<
SubjectId
,
Subject
>
entry:
allSubjects
.
entrySet
())
{
StringBuilder
b
=
new
StringBuilder
();
b
.
append
(
entry
.
getKey
().
studyId
);
b
.
append
(
"|"
);
b
.
append
(
entry
.
getValue
().
getId
());
b
.
append
(
"|"
);
b
.
append
(
entry
.
getValue
().
getName
());
b
.
append
(
"|"
);
b
.
append
(
entry
.
getValue
().
getInfo
());
lineList
.
add
(
b
.
toString
());
}
for
(
String
st:
lineList
)
{
bw
.
write
(
st
);
bw
.
write
(
n
);}
bw
.
close
();
}
catch
(
Throwable
t
)
{
t
.
printStackTrace
();}
}
public
long
getNextId
()
{
long
nextId
=
0
;
for
(
Subject
s:
subjects
.
values
())
{
if
(
s
.
getId
()>
nextId
)
{
nextId
=
s
.
getId
();
}
}
return
nextId
+
1
;
}
}
src/main/java/university/at/jku/ce/model/Student.java
View file @
41439c68
...
...
@@ -18,6 +18,11 @@ public class Student {
public
Student
()
{};
public
Student
(
String
firstName
,
String
lastName
)
{
this
.
firstName
=
firstName
;
this
.
lastName
=
lastName
;
}
public
Student
(
int
matrNr
,
String
firstName
,
String
lastName
)
{
this
.
matrNr
=
matrNr
;
this
.
firstName
=
firstName
;
...
...
src/main/java/university/at/jku/ce/model/Study.java
View file @
41439c68
...
...
@@ -13,14 +13,15 @@ public class Study {
private
long
studyId
;
private
String
name
;
private
Map
<
Long
,
Subject
>
subjects
=
new
HashMap
<
Long
,
Subject
>();
public
Study
()
{}
public
Study
(
long
studyId
,
String
name
,
Map
<
Long
,
Subject
>
subjects
)
{
public
Study
(
String
name
)
{
this
.
name
=
name
;
}
public
Study
(
long
studyId
,
String
name
)
{
this
.
studyId
=
studyId
;
this
.
subjects
=
subjects
;
this
.
name
=
name
;
}
public
long
getStudyId
()
{
...
...
@@ -38,13 +39,4 @@ public class Study {
public
void
setName
(
String
name
)
{
this
.
name
=
name
;
}
@JsonbTransient
public
Map
<
Long
,
Subject
>
getSubjects
()
{
return
subjects
;
}
public
void
setSubjects
(
Map
<
Long
,
Subject
>
subjects
)
{
this
.
subjects
=
subjects
;
}
}
src/main/java/university/at/jku/ce/model/Subject.java
View file @
41439c68
...
...
@@ -10,6 +10,11 @@ public class Subject {
public
Subject
()
{};
public
Subject
(
String
name
,
String
info
)
{
this
.
name
=
name
;
this
.
info
=
info
;
}
public
Subject
(
long
id
,
String
name
,
String
info
)
{
this
.
id
=
id
;
this
.
name
=
name
;
...
...
@@ -39,4 +44,9 @@ public class Subject {
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
}
}
src/main/java/university/at/jku/ce/resource/StudentResource.java
View file @
41439c68
...
...
@@ -15,87 +15,88 @@ import javax.ws.rs.core.MediaType;
import
javax.ws.rs.core.Response
;
import
university.at.jku.ce.model.Student
;
import
university.at.jku.ce.service.StudentService
;
import
university.at.jku.ce.service.Service
;
import
university.at.jku.ce.service.ServiceImpl
;
@Path
(
"/students"
)
public
class
StudentResource
{
Student
Service
s
tudentS
ervice
=
new
Student
Service
();
Service
service
=
new
Service
Impl
();
@GET
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
Response
getStudents
()
{
List
<
Student
>
list
=
studentService
.
getAllStudents
();
GenericEntity
<
List
<
Student
>>
entity
=
new
GenericEntity
<
List
<
Student
>>(
list
)
{};
return
Response
.
ok
(
entity
).
build
();
}
// @GET
// @Produces(MediaType.APPLICATION_XML)
// public List <Student> getStudents() {
// return studentService.getAllStudents();
// @Produces(MediaType.APPLICATION_JSON)
// public Response getStudents() {
// List<Student>list= studentService.getAllStudents();
// GenericEntity<List<Student>> entity=new GenericEntity<List<Student>>(list) {};
// return Response.ok(entity).build();
// }
@POST
@Consumes
(
MediaType
.
APPLICATION_JSON
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
Student
addStudent
(
Student
student
)
{
return
studentService
.
addStudent
(
student
);
}
//
//// @GET
//// @Produces(MediaType.APPLICATION_XML)
//// public List <Student> getStudents() {
//// return studentService.getAllStudents();
//// }
//
// @POST
// @Consumes(MediaType.APPLICATION_
XML
)
// @Produces(MediaType.APPLICATION_
XML
)
// public Student add
Message
(Student student) {
// @Consumes(MediaType.APPLICATION_
JSON
)
// @Produces(MediaType.APPLICATION_
JSON
)
// public Student add
Student
(Student student) {
// return studentService.addStudent(student);
// }
@GE
T
@Path
(
"/{studentMatrNr}"
)
@Produces
(
MediaType
.
APPLICATION_
JSON
)
public
Student
ge
t
Student
(
@PathParam
(
"studentMatrNr"
)
long
matrNr
)
{
return
studentService
.
get
Student
(
matrNr
);
}
//
//// @POS
T
//// @Consumes(MediaType.APPLICATION_XML
)
////
@Produces(MediaType.APPLICATION_
XML
)
////
public Student
addMessa
ge
(
Student
student
) {
////
return studentService.
add
Student(
student
);
////
}
//
// @GET
// @Path("/{studentMatrNr}")
// @Produces(MediaType.APPLICATION_
XML
)
// @Produces(MediaType.APPLICATION_
JSON
)
// public Student getStudent(@PathParam("studentMatrNr")long matrNr) {
// return studentService.getStudent(matrNr);
// }
@PUT
@Path
(
"/{studentMatrNr}"
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
Student
updateStudent
(
@PathParam
(
"studentMatrNr"
)
long
matrNr
,
Student
student
)
{
student
.
setMatrNr
(
matrNr
);
//if User does not send correct id it is still used correct id from URL
return
studentService
.
updateStudent
(
student
);
}
//
//// @GET
//// @Path("/{studentMatrNr}")
//// @Produces(MediaType.APPLICATION_XML)
//// public Student getStudent(@PathParam("studentMatrNr")long matrNr) {
//// return studentService.getStudent(matrNr);
//// }
//
// @PUT
// @Path("/{studentMatrNr}")
// @Consumes(MediaType.APPLICATION_
XML
)
// @Produces(MediaType.APPLICATION_
XML
)
// @Consumes(MediaType.APPLICATION_
JSON
)
// @Produces(MediaType.APPLICATION_
JSON
)
// public Student updateStudent(@PathParam("studentMatrNr")long matrNr,Student student) {
// student.setMatrNr(matrNr); //if User does not send correct id it is still used correct id from URL
// return studentService.updateStudent(student);
// }
@DELETE
@Path
(
"/{studentMatrNr}"
)
@Produces
(
MediaType
.
APPLICATION_JSON
)
public
void
deleteStudent
(
@PathParam
(
"studentMatrNr"
)
long
matrNr
)
{
studentService
.
removeStudent
(
matrNr
);
}
//
//// @PUT
//// @Path("/{studentMatrNr}")
//// @Consumes(MediaType.APPLICATION_XML)
//// @Produces(MediaType.APPLICATION_XML)
//// public Student updateStudent(@PathParam("studentMatrNr")long matrNr,Student student) {
//// student.setMatrNr(matrNr); //if User does not send correct id it is still used correct id from URL
//// return studentService.updateStudent(student);
//// }
//
// @DELETE
// @Path("/{studentMatrNr}")
// @Produces(MediaType.APPLICATION_
XML
)
// @Produces(MediaType.APPLICATION_
JSON
)
// public void deleteStudent(@PathParam("studentMatrNr")long matrNr) {
// studentService.removeStudent(matrNr);
// }
//
//// @DELETE
//// @Path("/{studentMatrNr}")
//// @Produces(MediaType.APPLICATION_XML)
//// public void deleteStudent(@PathParam("studentMatrNr")long matrNr) {
//// studentService.removeStudent(matrNr);
//// }
//