/** * {@inheritDoc} */ public Generic getSuperClass() { TypeDescription erasure = asErasure(); Generic superClass = erasure.getSuperClass(); if (TypeDescription.AbstractBase.RAW_TYPES) { return superClass; } return superClass == null ? Generic.UNDEFINED : new Generic.LazyProjection.WithResolvedErasure(superClass, new Visitor.ForRawType(erasure), Empty.INSTANCE); }
/** * {@inheritDoc} */ public FieldList<FieldDescription.InGenericShape> getDeclaredFields() { TypeDescription erasure = asErasure(); return new FieldList.TypeSubstituting(this, erasure.getDeclaredFields(), TypeDescription.AbstractBase.RAW_TYPES ? Visitor.NoOp.INSTANCE : new Visitor.ForRawType(erasure)); }
/** * {@inheritDoc} */ public MethodList<MethodDescription.InGenericShape> getDeclaredMethods() { TypeDescription erasure = asErasure(); return new MethodList.TypeSubstituting(this, erasure.getDeclaredMethods(), TypeDescription.AbstractBase.RAW_TYPES ? Visitor.NoOp.INSTANCE : new Visitor.ForRawType(erasure)); }
/** * {@inheritDoc} */ public TypeList.Generic getInterfaces() { TypeDescription erasure = asErasure(); if (TypeDescription.AbstractBase.RAW_TYPES) { return erasure.getInterfaces(); } return new TypeList.Generic.ForDetachedTypes.WithResolvedErasure(erasure.getInterfaces(), new Visitor.ForRawType(erasure)); }