' ==============================================================================
' 模块名称: cProcessor_CloneNew
' 模块类别: 类模块
' 模块职责: 通用克隆新增策略。适用于弹性元件等需要完全独立成行的规格。
' 逻辑描述: 找到第一个匹配的母版行，克隆它并赋予纯粹的新规格条件。
' ==============================================================================
Option Explicit
Implements IModuleProcessor

Private Sub IModuleProcessor_ProcessSpec( _
    ByRef allBOMs As Collection, _
    ByVal targetItemName As String, _
    ByVal paramName As String, _
    ByVal newValue As String, _
    ByRef engine As cConditionEngine)

    Dim rowObj As cBOMRow
    Dim templateRow As cBOMRow
    Set templateRow = Nothing

    ' 1. 寻找母版 (找到同名的第一条记录即可)
    For Each rowObj In allBOMs
        If StrComp(rowObj.ItemName, targetItemName, vbTextCompare) = 0 Then
            Set templateRow = rowObj
            Exit For
        End If
    Next rowObj

    ' 2. 如果找到了母版，进行克隆
    If Not templateRow Is Nothing Then
        Dim newRow As cBOMRow
        ' 调用数据访问层的克隆方法，它会自动把新对象加入到 allBOMs 集合中
        Set newRow = mBOMRepository.InsertNewBOMRow(allBOMs, templateRow)

        ' 新行的选择条件不再是追加，而是直接等于新规格 (例如：lcfw=M19)
        newRow.Condition = paramName & "=" & newValue
    End If

End Sub