1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
package com.fasterxml.jackson.databind.type;
import com.fasterxml.jackson.databind.JavaType;
/**
* Helper type used when introspecting bindings for already resolved types,
* needed for specialization.
*
* @since 2.8.11
*/
public class PlaceholderForType extends TypeBase
{
private static final long serialVersionUID = 1L;
protected final int _ordinal;
/**
* Type assigned during wildcard resolution (which follows type
* structure resolution)
*/
protected JavaType _actualType;
public PlaceholderForType(int ordinal)
{
super(Object.class, TypeBindings.emptyBindings(),
TypeFactory.unknownType(), null, 1, // super-class, super-interfaces, hashCode
null, null, false); // value/type handler, as-static
_ordinal = ordinal;
}
public JavaType actualType() { return _actualType; }
public void actualType(JavaType t) { _actualType = t; }
// Override to get better diagnostics
@Override
protected String buildCanonicalName() {
return toString();
}
@Override
public StringBuilder getGenericSignature(StringBuilder sb) {
return getErasedSignature(sb);
}
@Override
public StringBuilder getErasedSignature(StringBuilder sb) {
sb.append('$').append(_ordinal+1);
return sb;
}
@Override
public JavaType withTypeHandler(Object h) {
return _unsupported();
}
@Override
public JavaType withContentTypeHandler(Object h) {
return _unsupported();
}
@Override
public JavaType withValueHandler(Object h) {
return _unsupported();
}
@Override
public JavaType withContentValueHandler(Object h) {
return _unsupported();
}
@Override
public JavaType withContentType(JavaType contentType) {
return _unsupported();
}
@Override
public JavaType withStaticTyping() {
return _unsupported();
}
@Override
public JavaType refine(Class<?> rawType, TypeBindings bindings, JavaType superClass, JavaType[] superInterfaces) {
return _unsupported();
}
@Override
protected JavaType _narrow(Class<?> subclass) {
return _unsupported();
}
@Override
public boolean isContainerType() {
return false;
}
@Override
public String toString() {
return getErasedSignature(new StringBuilder()).toString();
}
@Override
public boolean equals(Object o) {
return (o == this);
}
private <T> T _unsupported() {
throw new UnsupportedOperationException("Operation should not be attempted on "+getClass().getName());
}
}
|