private void SetSubCategoryChain() { switch (_extension) { case ".exe": case ".txt": _subCategories = new ExeSubCategorizeContainsC(); _subCategoryLinks.Add(new ExeSubCategorizeAFollowedByB()); _subCategoryLinks.Add(new ExeSubCategorizeContainsZ()); break; case ".pdf": case ".bmp": _subCategories = new PdfSubCategorizeAFollowedByB(); _subCategoryLinks.Add(new PdfSubCategorizeContainsZ()); break; case ".docx": _subCategories = new DocSubCategorizeContainsG(); _subCategoryLinks.Add(new DocSubCategorizeGFollowedByB()); _subCategoryLinks.Add(new DocSubCategorizeContainsZ()); break; default: break; } if (_subCategoryLinks.Count != 0) { for (int i = 0; i < _subCategoryLinks.Count() - 1; i++) { _subCategoryLinks[i].SetNextChain(_subCategoryLinks[i + 1]); } _subCategories.SetNextChain(_subCategoryLinks[0]); } }
public void SetNextChain(IChainCategorization chain) { NextChain = chain; }