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
77549b5f
Commit
77549b5f
authored
Jan 02, 2019
by
Michael Schimpelsberger
Browse files
Datenpersistierung über Textdateien
parent
86557fdf
Changes
13
Hide whitespace changes
Inline
Side-by-side
src/main/java/university/at/jku/ce/Database.java
deleted
100644 → 0
View file @
86557fdf
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/AbstractStudyDao.java
View file @
77549b5f
package
university.at.jku.ce.dao
;
package
university.at.jku.ce.dao
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
university.at.jku.ce.model.Study
;
import
university.at.jku.ce.model.Study
;
public
abstract
class
AbstractStudyDao
{
public
abstract
class
AbstractStudyDao
{
abstract
List
<
Study
>
getAllStudies
();
public
abstract
Map
<
Long
,
Study
>
getAllStudies
();
abstract
Study
getStudy
(
Long
id
);
public
abstract
Study
getStudy
(
Long
id
);
abstract
Study
addStudy
(
Study
study
);
public
abstract
Study
addStudy
(
Study
study
);
abstract
Study
updateStudy
(
Study
study
);
public
abstract
Study
updateStudy
(
Study
study
);
abstract
Study
removeStudy
(
long
studyId
);
public
abstract
void
removeStudy
(
long
studyId
);
}
}
src/main/java/university/at/jku/ce/dao/AbstractSubjectDao.java
View file @
77549b5f
...
@@ -7,7 +7,7 @@ import java.util.Map;
...
@@ -7,7 +7,7 @@ import java.util.Map;
import
university.at.jku.ce.model.Subject
;
import
university.at.jku.ce.model.Subject
;
public
abstract
class
AbstractSubjectDao
{
public
abstract
class
AbstractSubjectDao
{
public
abstract
List
<
Subject
>
getAllSubjects
(
l
ong
studyId
);
public
abstract
Map
<
Long
,
Subject
>
getAllSubjects
(
L
ong
studyId
);
public
abstract
Subject
getSubject
(
long
studyId
,
long
id
);
public
abstract
Subject
getSubject
(
long
studyId
,
long
id
);
...
@@ -15,5 +15,5 @@ public abstract class AbstractSubjectDao {
...
@@ -15,5 +15,5 @@ public abstract class AbstractSubjectDao {
public
abstract
Subject
updateSubject
(
long
studyId
,
Subject
subject
);
public
abstract
Subject
updateSubject
(
long
studyId
,
Subject
subject
);
public
abstract
Subject
removeSubject
(
long
studyId
,
long
id
);
public
abstract
void
removeSubject
(
long
studyId
,
long
id
);
}
}
src/main/java/university/at/jku/ce/dao/TextStudyDao.java
0 → 100644
View file @
77549b5f
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
extends
AbstractStudyDao
{
Map
<
Long
,
Study
>
studies
;
@Override
public
Map
<
Long
,
Study
>
getAllStudies
()
{
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
();
studies
.
put
(
studyId
,
new
Study
(
studyId
,
studyName
));
}
}
return
studies
;
}
@Override
public
Study
getStudy
(
Long
id
)
{
studies
=
getAllStudies
();
return
studies
.
get
(
id
);
}
@Override
public
Study
addStudy
(
Study
study
)
{
studies
=
getAllStudies
();
study
.
setStudyId
(
getNextId
());
studies
.
put
(
study
.
getStudyId
(),
study
);
write
();
return
study
;
}
@Override
public
Study
updateStudy
(
Study
study
)
{
studies
=
getAllStudies
();
if
(
studies
.
containsKey
(
study
.
getStudyId
()))
{
studies
.
put
(
study
.
getStudyId
(),
study
);
}
write
();
return
study
;
}
@Override
public
void
removeStudy
(
long
studyId
)
{
studies
=
getAllStudies
();
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 @
77549b5f
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
extends
AbstractSubjectDao
{
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/Study.java
View file @
77549b5f
...
@@ -22,6 +22,11 @@ public class Study {
...
@@ -22,6 +22,11 @@ public class Study {
this
.
subjects
=
subjects
;
this
.
subjects
=
subjects
;
}
}
public
Study
(
long
studyId
,
String
name
)
{
this
.
studyId
=
studyId
;
this
.
name
=
name
;
}
public
Study
(
long
studyId
,
String
name
,
Map
<
Long
,
Subject
>
subjects
)
{
public
Study
(
long
studyId
,
String
name
,
Map
<
Long
,
Subject
>
subjects
)
{
this
.
name
=
name
;
this
.
name
=
name
;
this
.
studyId
=
studyId
;
this
.
studyId
=
studyId
;
...
...
src/main/java/university/at/jku/ce/model/Subject.java
View file @
77549b5f
...
@@ -44,4 +44,9 @@ public class Subject {
...
@@ -44,4 +44,9 @@ public class Subject {
public
void
setId
(
long
id
)
{
public
void
setId
(
long
id
)
{
this
.
id
=
id
;
this
.
id
=
id
;
}
}
}
}
src/main/java/university/at/jku/ce/resource/SubjectResource.java
View file @
77549b5f
...
@@ -40,8 +40,8 @@ public class SubjectResource {
...
@@ -40,8 +40,8 @@ public class SubjectResource {
@DELETE
@DELETE
@Path
(
"/{id}"
)
@Path
(
"/{id}"
)
public
Subject
removeSubject
(
@PathParam
(
"studyId"
)
long
studyId
,
@PathParam
(
"id"
)
long
id
)
{
public
void
removeSubject
(
@PathParam
(
"studyId"
)
long
studyId
,
@PathParam
(
"id"
)
long
id
)
{
return
subjectService
.
removeSubject
(
studyId
,
id
);
subjectService
.
removeSubject
(
studyId
,
id
);
}
}
@GET
@GET
...
...
src/main/java/university/at/jku/ce/service/StudentService.java
View file @
77549b5f
package
university.at.jku.ce.service
;
package
university.at.jku.ce.service
;
import
java.util.ArrayList
;
import
java.util.ArrayList
;
import
university.at.jku.ce.Database
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
...
@@ -12,44 +11,28 @@ import university.at.jku.ce.model.Subject;
...
@@ -12,44 +11,28 @@ import university.at.jku.ce.model.Subject;
public
class
StudentService
{
public
class
StudentService
{
private
Map
<
Long
,
Student
>
students
=
Database
.
getStudents
();
public
StudentService
()
{
public
StudentService
()
{
Student
s2
=
new
Student
(
1
,
"Michael"
,
"Schimpelsberger"
);
Student
s1
=
new
Student
(
2
,
"Franz"
,
"Reschl"
);
Student
s3
=
new
Student
(
3
,
"Susanne"
,
"Zaunmayr"
);
students
.
put
(
s1
.
getMatrNr
(),
s1
);
students
.
put
(
s2
.
getMatrNr
(),
s2
);
students
.
put
(
s3
.
getMatrNr
(),
s3
);
}
}
public
List
<
Student
>
getAllStudents
(){
public
List
<
Student
>
getAllStudents
(){
return
n
ew
ArrayList
<
Student
>(
students
.
values
())
;
return
n
ull
;
}
}
public
Student
getStudent
(
Long
id
)
{
public
Student
getStudent
(
Long
id
)
{
return
students
.
get
(
id
)
;
return
null
;
}
}
public
Student
addStudent
(
Student
student
)
{
public
Student
addStudent
(
Student
student
)
{
if
(
student
!=
null
)
{
return
null
;
student
.
setMatrNr
(
students
.
size
()+
1
);
students
.
put
(
student
.
getMatrNr
(),
student
);
}
return
student
;
}
}
public
Student
updateStudent
(
Student
student
)
{
public
Student
updateStudent
(
Student
student
)
{
if
(
student
!=
null
&&
students
.
containsKey
(
student
.
getMatrNr
()));
return
null
;
students
.
put
(
student
.
getMatrNr
(),
student
);
return
student
;
}
}
public
Student
removeStudent
(
long
matrNr
)
{
public
Student
removeStudent
(
long
matrNr
)
{
return
students
.
remove
(
matrNr
)
;
return
null
;
}
}
...
...
src/main/java/university/at/jku/ce/service/StudyService.java
View file @
77549b5f
...
@@ -4,56 +4,40 @@ import java.util.ArrayList;
...
@@ -4,56 +4,40 @@ import java.util.ArrayList;
import
java.util.HashMap
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.Map
;
import
university.at.jku.ce.dao.AbstractStudyDao
;
import
university.at.jku.ce.
Database
;
import
university.at.jku.ce.
dao.TextStudyDao
;
import
university.at.jku.ce.model.Study
;
import
university.at.jku.ce.model.Study
;
import
university.at.jku.ce.model.Subject
;
import
university.at.jku.ce.model.Subject
;
public
class
StudyService
{
public
class
StudyService
{
private
Map
<
Long
,
Study
>
studies
=
Database
.
getStudies
();
private
AbstractStudyDao
studyDao
=
new
TextStudyDao
();
public
StudyService
()
{
public
StudyService
()
{
Map
<
Long
,
Subject
>
win
=
new
HashMap
<
Long
,
Subject
>();
win
.
put
((
long
)
1
,
new
Subject
(
1
,
"Einführung Softwareentwicklung"
,
"Grundlagen der Softwareentwicklung"
));
win
.
put
((
long
)
2
,
new
Subject
(
2
,
"Datenmodellierung"
,
"Datenmodelle und Datenbanksysteme"
));
Map
<
Long
,
Subject
>
inf
=
new
HashMap
<
Long
,
Subject
>();
inf
.
put
((
long
)
1
,
new
Subject
(
1
,
"Einführung Softwareentwicklung"
,
"Grundlagen der Softwareentwicklung"
));
inf
.
put
((
long
)
2
,
new
Subject
(
2
,
"Relationale Algebra"
,
"Grundlegendes zu Relationalen Algebra"
));
Study
s1
=
new
Study
(
1
,
"Wirtschaftsinformatik"
,
win
);
Study
s2
=
new
Study
(
2
,
"Informatik"
,
inf
);
Study
s3
=
new
Study
(
3
,
"Wirtschaftswissenschaften"
,
null
);
studies
.
put
(
s1
.
getStudyId
(),
s1
);
studies
.
put
(
s2
.
getStudyId
(),
s2
);
studies
.
put
(
s3
.
getStudyId
(),
s3
);
}
}
public
List
<
Study
>
getAllStudies
(){
public
List
<
Study
>
getAllStudies
(){
return
new
ArrayList
<
Study
>(
studies
.
values
());
return
new
ArrayList
<
Study
>(
stud
yDao
.
getAllStud
ies
()
.
values
());
}
}
public
Study
getStudy
(
Long
id
)
{
public
Study
getStudy
(
Long
id
)
{
return
stud
ies
.
get
(
id
);
return
stud
yDao
.
getStudy
(
id
);
}
}
public
Study
addStudy
(
Study
study
)
{
public
Study
addStudy
(
Study
study
)
{
if
(
study
!=
null
)
{
if
(
study
!=
null
)
{
study
.
setStudyId
(
studies
.
size
()+
1
);
studyDao
.
addStudy
(
study
);
studies
.
put
(
study
.
getStudyId
(),
study
);
}
}
return
study
;