コード例 #1
0
ファイル: MaskTypeSet.cs プロジェクト: Noggog/Loqui
 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);
 }
コード例 #2
0
ファイル: MaskTypeSet.cs プロジェクト: Noggog/Loqui
 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)));
 }
コード例 #3
0
ファイル: MaskTypeSetCollection.cs プロジェクト: Noggog/Loqui
    public bool Contains(LoquiInterfaceType interfaceType, CommonGenerics commonGen, params MaskType[] maskTypes)
    {
        MaskTypeSet set = new MaskTypeSet(interfaceType, maskTypes, acceptAll: false, commonGen: commonGen);

        return(sets.Contains(set));
    }