package com.fasterxml.classmate.members;
import com.fasterxml.classmate.ResolvedType;
import com.fasterxml.classmate.ResolvedTypeWithMembers;
Container class used to enclose information about a single ResolvedType
that is part of ResolvedTypeWithMembers
. /**
* Container class used to enclose information about a single {@link ResolvedType}
* that is part of {@link ResolvedTypeWithMembers}.
*/
public final class HierarchicType
{
Whether this type instance represents a mix-in; if so, it can only result in
addition of annotations but not in addition of actual members.
/**
* Whether this type instance represents a mix-in; if so, it can only result in
* addition of annotations but not in addition of actual members.
*/
protected final boolean _isMixin;
protected final ResolvedType _type;
Relative priority of this type in hierarchy; higher priority members can override
lower priority members. Priority values are unique and are based on type index
(starting from 0), although they are not to be used for indexing.
/**
* Relative priority of this type in hierarchy; higher priority members can override
* lower priority members. Priority values are unique and are based on type index
* (starting from 0), although they are not to be used for indexing.
*/
protected final int _priority;
/*
/**********************************************************************
/* Life cycle
/**********************************************************************
*/
public HierarchicType(ResolvedType type, boolean mixin, int priority)
{
_type = type;
_isMixin = mixin;
_priority = priority;
}
/*
/**********************************************************************
/* Simple accessors
/**********************************************************************
*/
public ResolvedType getType() { return _type; }
public Class<?> getErasedType() { return _type.getErasedType(); }
public boolean isMixin() { return _isMixin; }
public int getPriority() { return _priority; }
/*
/**********************************************************************
/* Standard methods
/**********************************************************************
*/
@Override public String toString() { return _type.toString(); }
@Override public int hashCode() { return _type.hashCode(); }
@Override
public boolean equals(Object o)
{
if (o == this) return true;
if (o == null || o.getClass() != getClass()) return false;
HierarchicType other = (HierarchicType) o;
return _type.equals(other._type);
}
}