Example #1
0
        public void TestFactory()
        {
            CompositeBase comp = CompositeFactory.CreateInstance("Policy");

            Assert.IsNotNull(comp, "Expected Policy received null!");
            var policy = comp as Policy;

            Assert.IsNotNull(policy, "Could not cast instance to Policy!");
        }
Example #2
0
 public static IFactory CreateTransformFactory()
 {
     var factory = new CompositeFactory();
     factory.Add(new FunctionAdapter3<IFactory, object>(FromObject));
     factory.Add(new FunctionAdapter2<IAngle, string>(IAngleHelper.FromString));
     factory.Add(new FunctionAdapter2<ILength, string>(ILengthHelper.FromString));
     factory.Add(new FunctionAdapter3<ITranslation, IDictionary>(ITranslationHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<IRotations, IDictionary>(IRotationsHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<IMatrix3D, IDictionary>(IMatrix3DHelper.FromIDictionary));
     factory.Add(new FunctionAdapter2<ITypeName, IDictionary>(ITypeNameHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<IColor, string>(IColorHelper.FromString));
     factory.Add(new FunctionAdapter3<Material, string>(MaterialHelper.FromString));
     factory.Add(new FunctionAdapter3<IPrimaryModel, IDictionary>(IPrimaryModelHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<Model3D, IDictionary>(Model3DHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<Visual3D, IDictionary>(Visual3DHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<double[], IList>(ArrayHelper.DoubleArrayFromIList));
     factory.Add(new FunctionAdapter3<double[,], IList>(ArrayHelper.DoubleArray2DFromIList));
     factory.Add(new FunctionAdapter3<ILocalToParent, IDictionary>(ILocalToParentHelper.FromIDictionary));
     factory.Add(new FunctionAdapter3<ILocalToWorld, IDictionary>(ILocalToWorldHelper.FromIDictionary));
     return factory;
 }
Example #3
0
        //public void Add(Composite composite, string compositetag)
        //{
        //    string tag = String.Format(@"SCEC.SCEC_Kuzbass.{0}.EmergencyResponsePlan", compositetag);
        //    try
        //    {
        //        var tags = new List<string>
        //        {
        //            "Period.Start",
        //            "Period.End",
        //            "NumberOfPosition.AtTheBegining",
        //            "NumberOfPosition.ForToday",
        //            "Involved",
        //            "Changes.AddedChanges",
        //            "Changes.AddedPosition",
        //            "Changes.ExtractedPosition"
        //        };

        //        var propertyTags = tags.Select(t => String.Format("{0}.{1}", tag, t)).ToList();

        //        Write(propertyTags[0], composite.PeriodStart.ToString("dd.MM.yyyy"));
        //        Write(propertyTags[1], composite.PeriodEnd.ToString("dd.MM.yyyy"));
        //        Write(propertyTags[2], composite.NumberOfPositionAtBegining.ToString(CultureInfo.InvariantCulture));
        //        Write(propertyTags[3], composite.NumberOfPositionForToday.ToString(CultureInfo.InvariantCulture));
        //        Write(propertyTags[4], composite.Involved.ToString(CultureInfo.InvariantCulture));
        //        Write(propertyTags[5], composite.AddedChanges.ToString(CultureInfo.InvariantCulture));
        //        Write(propertyTags[6], composite.AddedPosition.ToString(CultureInfo.InvariantCulture));
        //        Write(propertyTags[7], composite.ExtractedPosition.ToString(CultureInfo.InvariantCulture));
        //    }
        //    catch
        //    {
        //        throw new Exception();
        //    }
        //}

        public Composite Get(string tag)
        {
            var compositeItem = new CompositeFactory().Create(tag);

            return(compositeItem);
        }
Example #4
0
 public void SetUp()
 {
     _factory = new CompositeFactory();
 }
Example #5
0
 public FakeSwitch()
 {
     Cases = new List <FakeCase <TValue, TResult> >();
     Body  = new CompositeFactory <TValue, TResult>(this).Evaluate;
 }
 public void loadSprite(String path)
 { // needs handling if failed. Also needs to be moved out of object class into sprites
     CompositeFactory.addGraphicTo(this, new Sprite.Stillframe(path), false);
 }
 public void addRigidbodyTo()
 {
     CompositeFactory.addRigidbodyTo(this);
 }
 public GraphicComposite addGraphicTo(Sprite sprite, boolean isRotateable)
 {
     return(CompositeFactory.addGraphicTo(this, sprite, isRotateable));
 }
 public DynamicRotationComposite addDynamicRotationTo()
 {
     return(CompositeFactory.addDynamicRotationTo(this));
 }
 public Collider addRotationalColliderTo(AngularComposite angularComposite, Boundary bounds)
 {
     return(CompositeFactory.addRotationalColliderTo(this, bounds, angularComposite));
 }
 public Collider addUltralightColliderTo(int radius, BoardAbstract board)
 {
     return(CompositeFactory.addUltralightColliderTo(this, radius, board));
 }
 public Collider addColliderTo(Boundary bounds, BoardAbstract board)
 {
     return(CompositeFactory.addColliderTo(this, bounds, board));
 }
 public Collider addInitialColliderTo(Boundary bounds)
 { //FIXME AUTOMATICALLY CHECK IF ENTITIY IS ADDED
     return(CompositeFactory.addInitialColliderTo(this, bounds));
 }
 public TranslationComposite addTranslationComposite()
 {
     return(CompositeFactory.addTranslationTo(this));
 }
        /* #########################################################################################################################
         *		CompositeFactory utility methods
         * #########################################################################################################################
         */

        public AngularComposite addAngularComposite()
        {
            return(CompositeFactory.addAngularComposite(this));
        }
        public PublicCompositeTypeGenerationResultImpl(
            CompositeModel cModel,
            CompositeTypeModel tModel,
            EventHandler <AssemblyLoadingArgs> loadingEvt,
            IDictionary <Assembly, Assembly> assDic,
            CompositeCodeGenerationInfo codeGenerationInfo
            )
        {
            //var orderer = new TypeLoadOrderer( cModel );

            var collectionsFactory = cModel.ApplicationModel.CollectionsFactory;
            var publicTypes        = cModel
                                     .GetAllCompositeTypes()
                                     .Concat(cModel.GetAllFragmentTypes())
                                                                                                    //.OrderBy( t => t, orderer )
                                     .Where(t => cModel.ApplicationModel.AffectedAssemblies.Contains(t.GetAssembly()))
                                     .OrderBy(t => t.Equals(cModel.MainCodeGenerationType) ? 0 : 1) // Populate main code generation type first
                                     .Select(t => GetGeneratedPublicType(t, cModel, codeGenerationInfo, loadingEvt, assDic))
                                     .Distinct()
                                     .ToArray();

            var mainTypes = publicTypes.Where(iResult => iResult.IsPublicTypeMainCompositeType());

            if (!mainTypes.Any() || mainTypes.Skip(1).Any())
            {
                throw new ArgumentException((mainTypes.Any() ? "Too many" : "Too little") + " generated main types (" + String.Join(", ", mainTypes) + "), exactly one allowed.");
            }
            var mainType = mainTypes.First();

            this._compositeFactory = (CompositeFactory)mainType.GetAssembly().GetType(mainType.Name + codeGenerationInfo.CompositeFactorySuffix, true)
#if WINDOWS_PHONE_APP
                                     .GetAllInstanceConstructors().First()
#else
                                     .GetConstructors()[0]
#endif
                                     .Invoke(null);

            var fragmentTypeGenerationResults = tModel.FragmentTypeInfos.Keys
                                                //.OrderBy( t => t, orderer )
                                                .Select(t => Tuple.Create(t, GetParticipantType(t, cModel, codeGenerationInfo, loadingEvt, assDic, codeGenerationInfo.FragmentPrefix, true)))
                                                .Where(t => t.Item2 != null)
                                                .Select(t => (FragmentTypeGenerationResult) new FragmentTypeGenerationResultImpl(t.Item1, t.Item2))
                                                .ToArray();
            var concernInvocationGenerationResults = tModel.ConcernInvocationTypeInfos.Keys
                                                     //.OrderBy( t => t, orderer )
                                                     .Select(t => Tuple.Create(t, GetParticipantType(t, cModel, codeGenerationInfo, loadingEvt, assDic, codeGenerationInfo.ConcernInvocationPrefix)))
                                                     .Where(t => t.Item2 != null)
                                                     .Select(t => (TypeGenerationResult) new TypeGenerationResultImpl(t.Item2, t.Item1))
                                                     .ToArray();
            var sideEffectInvocationGenerationResults = tModel.SideEffectInvocationTypeInfos.Keys
                                                        //.OrderBy( t => t, orderer )
                                                        .Select(t => Tuple.Create(t, GetParticipantType(t, cModel, codeGenerationInfo, loadingEvt, assDic, codeGenerationInfo.SideEffectInvocationPrefix)))
                                                        .Where(t => t.Item2 != null)
                                                        .Select(t => (TypeGenerationResult) new TypeGenerationResultImpl(t.Item2, t.Item1))
                                                        .ToArray();
            var privateCompositeGenerationresults = tModel.PrivateCompositeTypeInfos.Keys
                                                    //.OrderBy( t => t, orderer )
                                                    .Select(t => Tuple.Create(t, GetParticipantType(t, cModel, codeGenerationInfo, loadingEvt, assDic, codeGenerationInfo.PrivateCompositePrefix)))
                                                    .Where(t => t.Item2 != null)
                                                    .Select(t => (TypeGenerationResult) new TypeGenerationResultImpl(t.Item2, t.Item1))
                                                    .ToArray();

            var pGArgs = collectionsFactory.NewDictionaryProxy(
                tModel.PublicCompositeGenericArguments
                .Select((gArg, idx) => Tuple.Create(gArg, idx))
                .GroupBy(tuple => tuple.Item1.DeclaringType)
                .ToDictionary(grouping => grouping.Key, grouping => collectionsFactory.NewListProxy(grouping.Select(tuple => tuple.Item2).ToList()).CQ));

            this._generatedPublicMainType = mainType;
            this._maxParamCountForCtors   = mainType
#if WINDOWS_PHONE_APP
                                            .GetAllInstanceConstructors().First()
#else
                                            .GetConstructors(BindingFlags.Instance | BindingFlags.Public)[0]
#endif
                                            .GetParameters().Length;

            this._generatedPublicTypes = collectionsFactory.NewListProxy(publicTypes.Select(
                                                                             pt => (GeneratedTypeInfo) new GeneratedTypeInfoImpl(pt))
                                                                         .ToList()).CQ;
            this._publicCompositeGenericArguments       = pGArgs.CQ;
            this._privateCompositeGenerationResults     = collectionsFactory.NewListProxyFromParams(privateCompositeGenerationresults).CQ;
            this._fragmentGenerationResults             = collectionsFactory.NewListProxyFromParams(fragmentTypeGenerationResults).CQ;
            this._concernInvocationGenerationResults    = collectionsFactory.NewListProxyFromParams(concernInvocationGenerationResults).CQ;
            this._sideEffectInvocationGenerationResults = collectionsFactory.NewListProxyFromParams(sideEffectInvocationGenerationResults).CQ;

            // Remember to remove Qi4CS assembly if present
            assDic.Remove(ReflectionHelper.QI4CS_ASSEMBLY);
        }