CitrusArray.fromChain constructor
CitrusArray.fromChain(
- VarietyEnumeration chain
すべての要素が 有効な chain source であり head.name が object である場合 CitrusObjectArray を返す.
それ以外は CitrusTextArray を返す
Implementation
factory CitrusArray.fromChain(VarietyEnumeration chain) {
final List<CitrusObject> list = [];
for (final i in chain.value) {
final chainResult = Chain.fromSource(i);
if (chainResult is! Success<Chain, ChainException>) return CitrusTextArray.from(chain.value);
final headBox = chainResult.wrapped.head;
if (headBox is! Some<Head>) return CitrusTextArray.from(chain.value);
if (headBox.wrapped.name != 'object') return CitrusTextArray.from(chain.value);
list.add(CitrusObject.fromChain(chainResult.wrapped.bodyList));
}
return CitrusObjectArray(list);
}