package org.revapi.java.model;
import javax.annotation.Nonnull;
import javax.lang.model.type.DeclaredType;
import org.revapi.Element;
import org.revapi.java.compilation.ProbingEnvironment;
/**
* @author Lukas Krejci
* @since 0.1
*/
public final class MissingClassElement extends TypeElement {
private final MissingTypeElement element;
public MissingClassElement(ProbingEnvironment env, String binaryName, String canonicalName) {
super(env, null, binaryName, canonicalName);
element = new MissingTypeElement(canonicalName);
}
@Override public javax.lang.model.element.TypeElement getDeclaringElement() {
return element;
}
@Override public DeclaredType getModelRepresentation() {
return (DeclaredType) element.asType();
}
@Nonnull
@Override
protected String getHumanReadableElementType() {
return "missing-class";
}
@Override
public int compareTo(@Nonnull Element o) {
if (!(o instanceof MissingClassElement)) {
return JavaElementFactory.compareByType(this, o);
}
return getBinaryName().compareTo(((MissingClassElement) o).getBinaryName());
}
}