Skip to content

Package: AnimalAdapter

AnimalAdapter

nameinstructionbranchcomplexitylinemethod
AnimalAdapter()
M: 3 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 1 C: 0
0%
M: 1 C: 0
0%
adaptFromJson(AnimalJson)
M: 51 C: 0
0%
M: 3 C: 0
0%
M: 3 C: 0
0%
M: 13 C: 0
0%
M: 1 C: 0
0%
adaptToJson(Animal)
M: 56 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 13 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * Copyright (c) 2017, 2022 Oracle and/or its affiliates. All rights reserved.
3: *
4: * This program and the accompanying materials are made available under the
5: * terms of the Eclipse Public License v. 2.0, which is available at
6: * http://www.eclipse.org/legal/epl-2.0.
7: *
8: * This Source Code may also be made available under the following Secondary
9: * Licenses when the conditions for such availability set forth in the
10: * Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
11: * version 2 with the GNU Classpath Exception, which is available at
12: * https://www.gnu.org/software/classpath/license.html.
13: *
14: * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15: */
16:
17: /*
18: * $Id$
19: */
20:
21: package ee.jakarta.tck.json.bind.customizedmapping.adapters.model.adapter;
22:
23: import jakarta.json.bind.adapter.JsonbAdapter;
24:
25: import ee.jakarta.tck.json.bind.customizedmapping.adapters.model.Animal;
26: import ee.jakarta.tck.json.bind.customizedmapping.adapters.model.Cat;
27: import ee.jakarta.tck.json.bind.customizedmapping.adapters.model.Dog;
28:
29: import static ee.jakarta.tck.json.bind.customizedmapping.adapters.model.adapter.AnimalJson.TYPE.CAT;
30: import static ee.jakarta.tck.json.bind.customizedmapping.adapters.model.adapter.AnimalJson.TYPE.DOG;
31: import static ee.jakarta.tck.json.bind.customizedmapping.adapters.model.adapter.AnimalJson.TYPE.GENERIC;
32:
33: public class AnimalAdapter implements JsonbAdapter<Animal, AnimalJson> {
34: @Override
35: public AnimalJson adaptToJson(Animal animal) throws Exception {
36: AnimalJson adapted = new AnimalJson();
37:• if (Cat.class.isAssignableFrom(animal.getClass())) {
38: adapted.setType(CAT);
39: adapted.setCuddly(((Cat) animal).isCuddly());
40:• } else if (Dog.class.isAssignableFrom(animal.getClass())) {
41: adapted.setType(DOG);
42: adapted.setBarking(((Dog) animal).isBarking());
43: } else {
44: adapted.setType(GENERIC);
45: }
46: adapted.setName(animal.getName());
47: adapted.setAge(animal.getAge());
48: adapted.setFurry(animal.isFurry());
49: adapted.setWeight(animal.getWeight());
50: return adapted;
51: }
52:
53: @Override
54: public Animal adaptFromJson(AnimalJson adapted) throws Exception {
55: Animal animal;
56:• switch (adapted.getType()) {
57: case CAT:
58: animal = new Cat();
59: ((Cat) animal).setCuddly(adapted.isCuddly());
60: break;
61: case DOG:
62: animal = new Dog();
63: ((Dog) animal).setBarking(adapted.isBarking());
64: break;
65: default:
66: animal = new Animal();
67: }
68: animal.setName(adapted.getName());
69: animal.setAge(adapted.getAge());
70: animal.setFurry(adapted.isFurry());
71: animal.setWeight(adapted.getWeight());
72: return animal;
73: }
74: }