package com.easyagents.skill.model; import java.io.Serializable; import java.util.ArrayList; import java.util.List; /** * Skill 聚合根。 */ public class Skill implements Serializable { private static final long serialVersionUID = 1L; private String id; private String name; private String description; private SkillMetadata metadata = new SkillMetadata(); private String skillContent; private List references = new ArrayList<>(); private List scripts = new ArrayList<>(); private List assets = new ArrayList<>(); /** * 获取 Skill ID。 * * @return Skill ID */ public String getId() { return id; } /** * 设置 Skill ID。 * * @param id Skill ID */ public void setId(String id) { this.id = id; } /** * 获取名称。 * * @return 名称 */ public String getName() { return name; } /** * 设置名称。 * * @param name 名称 */ public void setName(String name) { this.name = name; } /** * 获取描述。 * * @return 描述 */ public String getDescription() { return description; } /** * 设置描述。 * * @param description 描述 */ public void setDescription(String description) { this.description = description; } /** * 获取元数据。 * * @return 元数据 */ public SkillMetadata getMetadata() { return metadata; } /** * 设置元数据。 * * @param metadata 元数据 */ public void setMetadata(SkillMetadata metadata) { this.metadata = metadata == null ? new SkillMetadata() : metadata; } /** * 获取 SKILL.md 原始内容。 * * @return SKILL.md 原始内容 */ public String getSkillContent() { return skillContent; } /** * 设置 SKILL.md 原始内容。 * * @param skillContent SKILL.md 原始内容 */ public void setSkillContent(String skillContent) { this.skillContent = skillContent; } /** * 获取参考文档列表。 * * @return 参考文档列表 */ public List getReferences() { return references; } /** * 设置参考文档列表。 * * @param references 参考文档列表 */ public void setReferences(List references) { this.references = references == null ? new ArrayList<>() : new ArrayList<>(references); } /** * 获取脚本列表。 * * @return 脚本列表 */ public List getScripts() { return scripts; } /** * 设置脚本列表。 * * @param scripts 脚本列表 */ public void setScripts(List scripts) { this.scripts = scripts == null ? new ArrayList<>() : new ArrayList<>(scripts); } /** * 获取资产列表。 * * @return 资产列表 */ public List getAssets() { return assets; } /** * 设置资产列表。 * * @param assets 资产列表 */ public void setAssets(List assets) { this.assets = assets == null ? new ArrayList<>() : new ArrayList<>(assets); } /** * 转换为轻量描述。 * * @return Skill 描述 */ public SkillDescriptor toDescriptor() { return new SkillDescriptor(id, name, description, metadata); } }