Skip to content

Package: ResolvedParameterizedType

ResolvedParameterizedType

nameinstructionbranchcomplexitylinemethod
ResolvedParameterizedType(ParameterizedType, Type[])
M: 9 C: 0
0%
M: 0 C: 0
100%
M: 1 C: 0
0%
M: 4 C: 0
0%
M: 1 C: 0
0%
equals(Object)
M: 37 C: 0
0%
M: 12 C: 0
0%
M: 7 C: 0
0%
M: 8 C: 0
0%
M: 1 C: 0
0%
getActualTypeArguments()
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%
getOwnerType()
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%
getRawType()
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%
hashCode()
M: 22 C: 0
0%
M: 4 C: 0
0%
M: 3 C: 0
0%
M: 3 C: 0
0%
M: 1 C: 0
0%
toString()
M: 49 C: 0
0%
M: 6 C: 0
0%
M: 4 C: 0
0%
M: 8 C: 0
0%
M: 1 C: 0
0%

Coverage

1: /*
2: * Copyright (c) 2016, 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: * or the Eclipse Distribution License v. 1.0 which is available at
8: * http://www.eclipse.org/org/documents/edl-v10.php.
9: *
10: * SPDX-License-Identifier: EPL-2.0 OR BSD-3-Clause
11: */
12:
13: package org.eclipse.yasson.internal;
14:
15: import java.lang.reflect.ParameterizedType;
16: import java.lang.reflect.Type;
17: import java.util.Arrays;
18: import java.util.Objects;
19:
20: /**
21: * {@link ParameterizedType} implementation containing array of resolved TypeVariable type args.
22: */
23: class ResolvedParameterizedType implements ParameterizedType {
24:
25: /**
26: * Original parameterized type.
27: */
28: private final ParameterizedType original;
29:
30: /**
31: * Resolved args by runtime type.
32: */
33: private final Type[] resolvedTypeArgs;
34:
35: /**
36: * Creates a new instance.
37: *
38: * @param original Original type.
39: * @param resolvedTypeArgs Resolved type arguments.
40: */
41: ResolvedParameterizedType(ParameterizedType original, Type[] resolvedTypeArgs) {
42: this.original = original;
43: this.resolvedTypeArgs = resolvedTypeArgs;
44: }
45:
46: /**
47: * Type arguments with resolved TypeVariables.
48: *
49: * @return type args
50: */
51: @Override
52: public Type[] getActualTypeArguments() {
53: return resolvedTypeArgs;
54: }
55:
56: @Override
57: public Type getRawType() {
58: return original.getRawType();
59: }
60:
61: @Override
62: public Type getOwnerType() {
63: return original.getOwnerType();
64: }
65:
66: @Override
67: public String toString() {
68: StringBuilder sb = new StringBuilder();
69: sb.append(original.toString());
70:• if (resolvedTypeArgs != null && resolvedTypeArgs.length > 0) {
71: sb.append(" resolved arguments: [");
72:• for (Type typeArg : resolvedTypeArgs) {
73: sb.append(typeArg);
74: }
75: sb.append("]");
76: }
77: return sb.toString();
78: }
79:
80: @Override
81: public boolean equals(Object o) {
82:• if (this == o) {
83: return true;
84: }
85:• if (o == null || !(o instanceof ParameterizedType)) {
86: return false;
87: }
88: final ParameterizedType that = (ParameterizedType) o;
89:• return this.getRawType().equals(that.getRawType())
90:• && Objects.equals(this.getOwnerType(), that.getOwnerType())
91:• && Arrays.equals(resolvedTypeArgs, that.getActualTypeArguments());
92: }
93:
94: @Override
95: public int hashCode() {
96: return Arrays.hashCode(resolvedTypeArgs)
97:• ^ (getOwnerType() == null ? 0 : getOwnerType().hashCode())
98:• ^ (getRawType() == null ? 0 : getRawType().hashCode());
99: }
100: }