ManualRule.java
package com.mycim.valueobject.edcspc.rule;
import com.mycim.valueobject.edcspc.DataCollectionRule;
import com.mycim.valueobject.wip.Unit;
import java.util.List;
/**
* 手动规则,该规则允许有选片<br> 不强制匹配选片,有则匹配,没有就不匹配<br>
*
* @author Qiansheng.Wang
*/
public class ManualRule extends CollectionRuleAbstract implements CollectionRule {
public ManualRule(DataCollectionRule dataCollectionRule, List<Unit> unitList) {
super(dataCollectionRule, unitList);
}
@Override
public Boolean isAvailableDataCollectionRule() {
int sampleSize = getWaferSamples().length;
int specialSampleSize = getSpecialSampleSize();
if (isNotAvailable(sampleSize, specialSampleSize)) {
// 手动规则,不必强制判断
return true;
}
for (int i = 0; i < sampleSize; i++) {
String sample = getWaferSamples()[i];
setAndCheckAvailableUnit(sample);
}
return checkResult(sampleSize);
}
/**
* 通过选片数量和筛选出来的Unit数量,检查结果是否正确。<br> Manual规则,只要匹配数量小于等于选片数量即可。<br> 默认带出,可以手动调整
*
* @param sampleSize
* @return
*/
@Override
protected Boolean checkResult(int sampleSize) {
setAvailableSample(getSelectedUnitIdList().size());
return getAvailableSample() <= sampleSize;
}
}