package xsbti.api; import java.util.Arrays; import java.util.List; public final class ClassLike extends ParameterizedDefinition { public ClassLike(DefinitionType definitionType, Lazy<Type> selfType, Lazy<Structure> structure, String[] savedAnnotations, TypeParameter[] typeParameters, String name, Access access, Modifiers modifiers, Annotation[] annotations) { super(typeParameters, name, access, modifiers, annotations); this.definitionType = definitionType; this.selfType = selfType; this.structure = structure; this.savedAnnotations = savedAnnotations; } private final DefinitionType definitionType; private final Lazy<Type> selfType; private final Lazy<Structure> structure; private final String[] savedAnnotations; public final DefinitionType definitionType() { return definitionType; } public final Type selfType() { return selfType.get(); } public final Structure structure() { return structure.get(); } public final String[] savedAnnotations() { return savedAnnotations; } public boolean equals(Object obj) { return this == obj; // We have lazy members, so use object identity to avoid circularity. } public int hashCode() { return super.hashCode(); } public String toString() { return super.toString(); } }