Skip to content

Package: Eplus2

Eplus2

nameinstructionbranchcomplexitylinemethod
getInstance()
M: 9 C: 0
0%
M: 2 C: 0
0%
M: 2 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
getKonvertierer()
M: 5 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+2 dar, also Versand zwei Tage nach Einlieferung.
11: */
12: public final class Eplus2 implements VersandArt {
13:         
14:         private static Eplus2 instance;
15:         
16:         private Eplus2() {
17:         }
18:         
19:         /**
20:          * @return Liefert die Singleton-Instanz des Eplus2-Objektes.
21:          */
22:         public static Eplus2 getInstance() {
23:•                if (null == Eplus2.instance) {
24: Eplus2.instance = new Eplus2();
25:                 }
26:                 return Eplus2.instance;
27:         }
28:         
29:         /**
30:          * @return Liefert den Eplus2-Konvertierer, welcher benötigt wird, damit ein Eplus2-Objekt persistiert werden kann. Dieses Objekt muss dem
31:          * Persistierer vor dem Speichern/ Laden mittels {@code Persistierer.addKonvertierer(Eplus2.getKonvertierer()) übergeben werden.
32:          */
33:         public static Converter getKonvertierer() {
34:                 return new Eplus2Konvertierer();
35:         }
36:         
37:         /**
38:          * Eine private Klasse, die es dem Singleton ermöglicht persistiert zu werden.
39:          */
40:         private static class Eplus2Konvertierer implements Converter {
41:                 @Override
42:                 public boolean canConvert(final Class clazz) {
43:                         return clazz.equals(Eplus2.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 Eplus2.getInstance();
56:                 }
57:         }
58:         
59: }