Skip to content

Package: EPlus1$EPlus1Konvertierer

EPlus1$EPlus1Konvertierer

nameinstructionbranchcomplexitylinemethod
canConvert(Class)
M: 4 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
marshal(Object, HierarchicalStreamWriter, MarshallingContext)
M: 1 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
unmarshal(HierarchicalStreamReader, UnmarshallingContext)
M: 2 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%

Coverage

1: package auftraege.versand;
2:
3: import com.thoughtworks.xstream.converters.Converter;
4: import com.thoughtworks.xstream.converters.MarshallingContext;
5: import com.thoughtworks.xstream.converters.UnmarshallingContext;
6: import com.thoughtworks.xstream.io.HierarchicalStreamReader;
7: import com.thoughtworks.xstream.io.HierarchicalStreamWriter;
8:
9: /**
10: * Stellt die Versnadart E+1 dar, also Versand ein Tag nach Einlieferung.
11: */
12: public final class EPlus1 implements VersandArt {
13:         
14:         private static EPlus1 instance;
15:         
16:         private EPlus1() {
17:         }
18:         
19:         /**
20:          * @return Liefert die Singleton-Instanz des EPlus1-Objektes.
21:          */
22:         public static EPlus1 getInstance() {
23:                 if (null == EPlus1.instance) {
24: EPlus1.instance = new EPlus1();
25:                 }
26:                 return EPlus1.instance;
27:         }
28:         
29:         /**
30:          * @return Liefert den EPlus1-Konvertierer, welcher benötigt wird, damit ein EPlus1-Objekt persistiert werden kann. Dieses Objekt muss dem
31:          * Persistierer vor dem Speichern/ Laden mittels {@code Persistierer.addKonvertierer(EPlus1.getKonvertierer()) übergeben werden.
32:          */
33:         public static Converter getKonvertierer() {
34:                 return new EPlus1Konvertierer();
35:         }
36:         
37:         /**
38:          * Eine private Klasse, die es dem Singleton ermöglicht persistiert zu werden.
39:          */
40:         private static class EPlus1Konvertierer implements Converter {
41:                 @Override
42:                 public boolean canConvert(final Class clazz) {
43:                         return clazz.equals(EPlus1.class);
44:                 }
45:                 
46:                 @Override
47:                 public void marshal(final Object value, final HierarchicalStreamWriter writer, final MarshallingContext context) {
48:                         // Kann für ein simples Singleton ohne weitere Attribute leer gelassen werden.
49:                         // Müssen Attribute jedoch mitgespeichert werden, ist dieser (sowie die unmarshal-Methode) Code etwa nach folgendem Vorbild zu erweitern:
50:                         // http://x-stream.github.io/converter-tutorial.html
51:                 }
52:                 
53:                 @Override
54:                 public Object unmarshal(final HierarchicalStreamReader writer, final UnmarshallingContext context) {
55:                         return EPlus1.getInstance();
56:                 }
57:         }
58: }