1 package de.kaiserpfalzedv.services.dnb.marcxml.model;
2
3 import java.util.List;
4
5 import com.fasterxml.jackson.annotation.JsonInclude;
6 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlElementWrapper;
7 import com.fasterxml.jackson.dataformat.xml.annotation.JacksonXmlProperty;
8
9 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
10 import jakarta.xml.bind.annotation.XmlAccessType;
11 import jakarta.xml.bind.annotation.XmlAccessorType;
12 import jakarta.xml.bind.annotation.XmlAttribute;
13 import jakarta.xml.bind.annotation.XmlElement;
14 import jakarta.xml.bind.annotation.XmlType;
15 import lombok.AllArgsConstructor;
16 import lombok.EqualsAndHashCode;
17 import lombok.Getter;
18 import lombok.NoArgsConstructor;
19 import lombok.ToString;
20 import lombok.experimental.SuperBuilder;
21 import lombok.extern.jackson.Jacksonized;
22
23
24
25
26
27
28
29 @SuppressFBWarnings(value = {"EI_EXPOSE_REP","EI_EXPOSE_REP2"}, justification = "lombok provided @Getter are created")
30 @Jacksonized
31 @SuperBuilder(toBuilder = true)
32 @AllArgsConstructor
33 @NoArgsConstructor
34 @Getter
35 @ToString
36 @EqualsAndHashCode(onlyExplicitlyIncluded = true)
37 @JsonInclude(JsonInclude.Include.NON_ABSENT)
38 @XmlType(namespace = "http://www.loc.gov/MARC21/slim")
39 @XmlAccessorType(XmlAccessType.FIELD)
40 public class DataField {
41 @ToString.Include
42 @JacksonXmlProperty(isAttribute = true)
43 @XmlAttribute
44 private String tag;
45 @JacksonXmlProperty(isAttribute = true)
46 @XmlAttribute
47 private String ind1;
48 @JacksonXmlProperty(isAttribute = true)
49 @XmlAttribute
50 private String ind2;
51
52 @JacksonXmlElementWrapper(useWrapping = false)
53 @XmlElement(name = "subfield")
54 private List<SubField> subfield;
55 }