package com.easyagents.agent.runtime.message;

import java.util.LinkedHashMap;
import java.util.Map;

/**
 * 未识别的内容消息块
 * 兜底表示。
 */
public class AgentUnknownBlock extends AgentContentBlock {

    private String sourceClassName;
    private String sourceTypeName;
    private String rawText;
    private Map<String, Object> rawMetadata = new LinkedHashMap<>();

    /**
     * 创建未知内容块。
     */
    public AgentUnknownBlock() {
        super(AgentContentBlockType.UNKNOWN);
    }

    /**
     * 获取来源类名。
     *
     * @return 来源类名
     */
    public String getSourceClassName() {
        return sourceClassName;
    }

    /**
     * 设置来源类名。
     *
     * @param sourceClassName 来源类名
     */
    public void setSourceClassName(String sourceClassName) {
        this.sourceClassName = sourceClassName;
    }

    /**
     * 获取来源类型名。
     *
     * @return 来源类型名
     */
    public String getSourceTypeName() {
        return sourceTypeName;
    }

    /**
     * 设置来源类型名。
     *
     * @param sourceTypeName 来源类型名
     */
    public void setSourceTypeName(String sourceTypeName) {
        this.sourceTypeName = sourceTypeName;
    }

    /**
     * 获取原始文本表示。
     *
     * @return 原始文本表示
     */
    public String getRawText() {
        return rawText;
    }

    /**
     * 设置原始文本表示。
     *
     * @param rawText 原始文本表示
     */
    public void setRawText(String rawText) {
        this.rawText = rawText;
    }

    /**
     * 获取原始元数据。
     *
     * @return 原始元数据
     */
    public Map<String, Object> getRawMetadata() {
        return rawMetadata;
    }

    /**
     * 设置原始元数据。
     *
     * @param rawMetadata 原始元数据
     */
    public void setRawMetadata(Map<String, Object> rawMetadata) {
        this.rawMetadata = rawMetadata == null ? new LinkedHashMap<>() : new LinkedHashMap<>(rawMetadata);
    }
}
