public bool Applicable(LoquiInterfaceType interfaceType, CommonGenerics commonGen, params MaskType[] maskTypes) { if (AcceptingAll) { return(true); } if (commonGen != CommonGen) { return(false); } if (interfaceType != _loquiInterface) { return(false); } if (maskTypes?.Length == 0) { return(_maskTypeSet.Count == 1 && _maskTypeSet.Contains(MaskType.Normal)); } if (maskTypes.Length != _maskTypeSet.Count) { return(false); } foreach (var maskType in maskTypes) { if (!_maskTypeSet.Contains(maskType)) { return(false); } } return(true); }
public MaskTypeSet(LoquiInterfaceType interfaceType, IEnumerable <MaskType> types, bool acceptAll, CommonGenerics commonGen) { CommonGen = commonGen; _maskTypeSet = new HashSet <MaskType>(types); AcceptingAll = acceptAll; _loquiInterface = interfaceType; IsMainSet = interfaceType == LoquiInterfaceType.IGetter && (_maskTypeSet.Count == 0 || (_maskTypeSet.Count == 1 && _maskTypeSet.Contains(MaskType.Normal))); }
public bool Contains(LoquiInterfaceType interfaceType, CommonGenerics commonGen, params MaskType[] maskTypes) { MaskTypeSet set = new MaskTypeSet(interfaceType, maskTypes, acceptAll: false, commonGen: commonGen); return(sets.Contains(set)); }