diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 5a663f3..7373944 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -13,9 +13,9 @@
-
-
-
+
+
+
\ No newline at end of file
diff --git a/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java b/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java
index 25992db..aa6d8e1 100644
--- a/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java
+++ b/MoviesCommon/src/main/java/at.technikumwien.movies/Actors.java
@@ -23,21 +23,24 @@ import java.time.LocalDate;
)
@XmlRootElement
public class Actors {
- @XmlAttribute(name = "id")
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 100, nullable = false)
+ @XmlAttribute
private String firstname;
@Column(length = 100, nullable = false)
+ @XmlAttribute
private String lastname;
@Column(nullable = false)
+ @XmlAttribute
private Sex sex;
@Column(nullable = false)
+ @XmlAttribute
private LocalDate birthdate;
public Actors(String firstname, String lastname, Sex sex, LocalDate birthdate) {
diff --git a/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java b/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java
index 106fe28..fb31be4 100644
--- a/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java
+++ b/MoviesCommon/src/main/java/at.technikumwien.movies/Movies.java
@@ -4,6 +4,8 @@ import lombok.*;
import javax.persistence.*;
import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlElement;
+import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlRootElement;
import java.util.Calendar;
import java.util.List;
@@ -24,11 +26,8 @@ import java.util.List;
)
@XmlRootElement
public class Movies {
- // TODO: XmlAttributes may need different names
-
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
- @XmlAttribute
private Long id;
@Column(length = 100, nullable = false)
@@ -56,10 +55,13 @@ public class Movies {
name = "t_movies_actors",
joinColumns = @JoinColumn(name = "fk_movies_id"),
inverseJoinColumns = @JoinColumn(name = "fk_actors_id"))
+ @XmlElementWrapper(name = "actors")
+ @XmlElement(name = "actor")
private List actors;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "fk_studios_id")
+ @XmlElement
private Studios studio;
public Movies(String title, String description, Genre genre, int length, int releaseyear) {
diff --git a/MoviesCommon/src/main/java/at.technikumwien.movies/Studios.java b/MoviesCommon/src/main/java/at.technikumwien.movies/Studios.java
index 903324b..c8f1ecc 100644
--- a/MoviesCommon/src/main/java/at.technikumwien.movies/Studios.java
+++ b/MoviesCommon/src/main/java/at.technikumwien.movies/Studios.java
@@ -3,6 +3,8 @@ package at.technikumwien.movies;
import lombok.*;
import javax.persistence.*;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
@Data
@NoArgsConstructor
@@ -10,22 +12,23 @@ import javax.persistence.*;
@Entity
@Table(name = "t_studios")
+@XmlRootElement
public class Studios {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(length = 100, nullable = false)
+ @XmlAttribute
private String name;
+ @XmlAttribute
private String countrycode;
+
+ @XmlAttribute
private String postcode;
public Studios(String name, String countrycode, String postcode) {
this(null, name, countrycode, postcode);
}
-
- //TODO consider using
- //@ManyToMany(mappedBy = 'at.technikumwien.movies.Studios')
- //private List movies
}
diff --git a/MoviesWebApp/src/main/java/at/technikumwien/movies/LocalDateAdapter.java b/MoviesWebApp/src/main/java/at/technikumwien/movies/LocalDateAdapter.java
new file mode 100644
index 0000000..7c05cab
--- /dev/null
+++ b/MoviesWebApp/src/main/java/at/technikumwien/movies/LocalDateAdapter.java
@@ -0,0 +1,19 @@
+package at.technikumwien.movies;
+
+import javax.xml.bind.annotation.adapters.XmlAdapter;
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+
+public class LocalDateAdapter extends XmlAdapter {
+ private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("dd.MM.yyyy");
+
+ @Override
+ public LocalDate unmarshal(String s) throws Exception {
+ return LocalDate.parse(s, FORMATTER);
+ }
+
+ @Override
+ public String marshal(LocalDate localDate) throws Exception {
+ return FORMATTER.format(localDate);
+ }
+}
diff --git a/MoviesWebApp/src/main/java/at/technikumwien/movies/package-info.java b/MoviesWebApp/src/main/java/at/technikumwien/movies/package-info.java
index 6cba489..e3715ec 100644
--- a/MoviesWebApp/src/main/java/at/technikumwien/movies/package-info.java
+++ b/MoviesWebApp/src/main/java/at/technikumwien/movies/package-info.java
@@ -1,7 +1,8 @@
@XmlAccessorType(XmlAccessType.FIELD)
+@XmlJavaTypeAdapter(LocalDateAdapter.class)
package at.technikumwien.movies;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;