package com.fasterxml.classmate.types;
import java.util.*;
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.classmate.TypeBindings;
Placeholder used for resolving type assignments to figure out
type parameters for subtypes.
/**
* Placeholder used for resolving type assignments to figure out
* type parameters for subtypes.
*/
public class TypePlaceHolder extends ResolvedType
{
protected final int _ordinal;
Type assigned during wildcard resolution (which follows type
structure resolution)
/**
* Type assigned during wildcard resolution (which follows type
* structure resolution)
*/
protected ResolvedType _actualType;
public TypePlaceHolder(int ordinal)
{
super(Object.class, TypeBindings.emptyBindings());
_ordinal = ordinal;
}
@Override
public boolean canCreateSubtypes() { return false; }
public ResolvedType actualType() { return _actualType; }
public void actualType(ResolvedType t) { _actualType = t; }
/*
/**********************************************************************
/* Accessors for related types
/**********************************************************************
*/
@Override
public ResolvedType getParentClass() { return null; }
@Override
public ResolvedType getSelfReferencedType() { return null; }
@Override
public List<ResolvedType> getImplementedInterfaces() { return Collections.<ResolvedType>emptyList(); }
@Override
public ResolvedType getArrayElementType() { return null; }
/*
/**********************************************************************
/* Simple property accessors
/**********************************************************************
*/
@Override
public boolean isInterface() { return false; }
@Override
public boolean isAbstract() { return true; }
@Override
public boolean isArray() { return false; }
@Override
public boolean isPrimitive() { return false; }
/*
/**********************************************************************
/* String representations
/**********************************************************************
*/
@Override
public StringBuilder appendSignature(StringBuilder sb) {
return _appendClassSignature(sb);
}
@Override
public StringBuilder appendErasedSignature(StringBuilder sb) {
return _appendErasedClassSignature(sb);
}
@Override
public StringBuilder appendBriefDescription(StringBuilder sb) {
sb.append('<').append(_ordinal).append('>');
return sb;
}
@Override
public StringBuilder appendFullDescription(StringBuilder sb) {
return appendBriefDescription(sb);
}
/*
/**********************************************************************
/* Other overrides
/**********************************************************************
*/
// Important: make sure to avoid matches for cache lookups; one way is
// to handle it here; not the only one.
@Override public boolean equals(Object o) { // since 1.3.1
// should these ever match actually?
return (o == this);
}
}