ttl-core/src/main/java/com/alibaba/ttl3/spi/TtlAttachmentsDelegate.java [17:58]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class TtlAttachmentsDelegate implements TtlAttachments {
    private final ConcurrentMap<String, Object> attachments = new ConcurrentHashMap<>();

    @Override
    public void setTtlAttachment(@NonNull String key, Object value) {
        attachments.put(key, value);
    }

    @Override
    @SuppressWarnings("unchecked")
    public <T> T getTtlAttachment(@NonNull String key) {
        return (T) attachments.get(key);
    }

    // ======== AutoWrapper Util Methods ========

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     */
    public static boolean isAutoWrapper(@Nullable Object ttlAttachments) {
        if (!(ttlAttachments instanceof TtlAttachments)) return false;

        final Boolean value = ((TtlAttachments) ttlAttachments).getTtlAttachment(KEY_IS_AUTO_WRAPPER);
        if (value == null) return false;

        return value;
    }

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     */
    public static void setAutoWrapperAttachment(@Nullable Object ttlAttachment) {
        if (!(ttlAttachment instanceof TtlAttachments)) return;

        ((TtlAttachments) ttlAttachment).setTtlAttachment(TtlAttachments.KEY_IS_AUTO_WRAPPER, true);
    }

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     */
    @Nullable
    public static <T> T unwrapIfIsAutoWrapper(@Nullable T obj) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



ttl2-compatible/src/main/java/com/alibaba/ttl/spi/TtlAttachmentsDelegate.java [18:62]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
public class TtlAttachmentsDelegate implements TtlAttachments {
    private final ConcurrentMap<String, Object> attachments = new ConcurrentHashMap<>();

    @Override
    public void setTtlAttachment(@NonNull String key, Object value) {
        attachments.put(key, value);
    }

    @Override
    @SuppressWarnings("unchecked")
    public <T> T getTtlAttachment(@NonNull String key) {
        return (T) attachments.get(key);
    }

    // ======== AutoWrapper Util Methods ========

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     * @since 3.0.0
     */
    public static boolean isAutoWrapper(@Nullable Object ttlAttachments) {
        if (!(ttlAttachments instanceof TtlAttachments)) return false;

        final Boolean value = ((TtlAttachments) ttlAttachments).getTtlAttachment(KEY_IS_AUTO_WRAPPER);
        if (value == null) return false;

        return value;
    }

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     * @since 3.0.0
     */
    public static void setAutoWrapperAttachment(@Nullable Object ttlAttachment) {
        if (!(ttlAttachment instanceof TtlAttachments)) return;

        ((TtlAttachments) ttlAttachment).setTtlAttachment(TtlAttachments.KEY_IS_AUTO_WRAPPER, true);
    }

    /**
     * @see TtlAttachments#KEY_IS_AUTO_WRAPPER
     * @since 3.0.0
     */
    @Nullable
    public static <T> T unwrapIfIsAutoWrapper(@Nullable T obj) {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



