示例#1
0
        static void Main(string region  = null,
                         string session = null,
                         string package = null,
                         string project = null,
                         string[] args  = null)
        {
            switch (region)
            {
            case "OO1":
                Basic.RunStuff(null);
                break;

            case "OO2":
                Interfaces.RunStuff(null);
                break;

            case "OO3":
                AbstractClasses.RunStuff(null);
                break;

            case "OO4":
                Polymorphism.RunStuff(null);
                break;

            default:
                break;
            }
        }
        protected override JsonConverter ResolveContractConverter(Type objectType)
        {
            if (!objectType.IsAbstract && AbstractClasses.Any(t => t.IsAssignableFrom(objectType)))
            {
                // pretend TableSortRuleConvert is not specified (thus avoiding a stack overflow)
                return(null);
            }

            return(base.ResolveContractConverter(objectType));
        }
示例#3
0
        public void AddAbstractClass(ClassDeclarationSyntax syntax)
        {
            string className = syntax.Identifier.Text;

            if (AbstractClasses.ContainsKey(className))
            {
                throw new ArgumentException($"Abstract Class: {className} already exist.");
            }

            AbstractClasses.Add(className, syntax);
        }
示例#4
0
        private void UpdateExistingAbstractClassesWithTheSameArguments(List <int> arguments, ClusteredDataObject reductDataObject,
                                                                       int indexOfReductDataObject, out bool isNewAbstractClass)
        {
            isNewAbstractClass = true;
            foreach (var abstractClass in AbstractClasses.Where(abstractClass => abstractClass.ArgumentsValues.SequenceEqual(arguments)))
            {
                isNewAbstractClass = false;
                abstractClass.ObjectsIndexes.Add(indexOfReductDataObject);
                if (abstractClass.Decision == reductDataObject.Decision)
                {
                    continue;
                }

                abstractClass.IsClear  = false;
                abstractClass.Decision = null;
            }
        }
示例#5
0
 public bool TryGetAbstractClass(string abstractClassName, out ClassDeclarationSyntax result) =>
 AbstractClasses.TryGetValue(abstractClassName, out result);
示例#6
0
 public bool IsAbstractClass(string name) => AbstractClasses.ContainsKey(name);
示例#7
0
 public override void VisitAbstractClass <TNamespace, TDocument, TProject, TSolution, TAttributeGroup, TGenericParameter, TClassReference, TInterfaceReference, TEventCollection, TPropertyCollection, TIndexerCollection, TMethodCollection, TFieldCollection, TConstructor, TOperatorOverload, TConversionOperator, TNestedClassCollection, TNestedDelegate, TNestedEnum, TNestedInterfaceCollection, TNestedStructCollection, TDestructor, TStaticConstructor>(
     IAbstractClass <TNamespace, TDocument, TProject, TSolution, TAttributeGroup, TGenericParameter, TClassReference, TInterfaceReference, TEventCollection, TPropertyCollection, TIndexerCollection, TMethodCollection, TFieldCollection, TConstructor, TOperatorOverload, TConversionOperator, TNestedClassCollection, TNestedDelegate, TNestedEnum, TNestedInterfaceCollection, TNestedStructCollection, TDestructor, TStaticConstructor> @class)
 {
     AbstractClasses.Add(@class.Name, @class);
 }