public override Value wrap(Env env, Object obj)
        {
            if (!_isInit)
            {
                init();
            }

            ArrayValueImpl arrayValueImpl = new ArrayValueImpl();

            // XXX: needs to go into constructor
            Class componentClass = getType().getComponentType();

            MarshalFactory factory = getModuleContext().getMarshalFactory();
            Marshal        componentClassMarshal = factory.create(componentClass);

            int length = Array.getLength(obj);

            for (int i = 0; i < length; i++)
            {
                Object component = Array.get(obj, i);

                arrayValueImpl.put(componentClassMarshal.unmarshal(env, component));
            }

            return(arrayValueImpl);
        }
Example #2
0
        private void Initialize(IOptions <S3Config> options, INetworkDriver networkDriver, ILoggerFactory loggerFactory)
        {
            Assembly assembly = typeof(S3Config).Assembly;

            SimpleServiceProvider provider = new SimpleServiceProvider(new Tuple <Type, object>(typeof(IOptions <S3Config>), options));

            IEnumerable <IValidator>       validators       = CreateInstances <IValidator>(assembly, provider);
            IEnumerable <IRequestMarshal>  requestMarshals  = CreateInstances <IRequestMarshal>(assembly, provider);
            IEnumerable <IResponseMarshal> responseMarshals = CreateInstances <IResponseMarshal>(assembly, provider);

            ValidatorFactory      validatorFactory     = new ValidatorFactory(validators);
            IMarshalFactory       marshalFactory       = new MarshalFactory(requestMarshals, responseMarshals);
            IScopeBuilder         scopeBuilder         = new ScopeBuilder(options);
            ISigningKeyBuilder    signingKeyBuilder    = new SigningKeyBuilder(options, loggerFactory.CreateLogger <SigningKeyBuilder>());
            ISignatureBuilder     signatureBuilder     = new SignatureBuilder(signingKeyBuilder, scopeBuilder, loggerFactory.CreateLogger <SignatureBuilder>(), options);
            IAuthorizationBuilder authorizationBuilder = new AuthorizationHeaderBuilder(options, scopeBuilder, signatureBuilder, loggerFactory.CreateLogger <AuthorizationHeaderBuilder>());
            DefaultRequestHandler requestHandler       = new DefaultRequestHandler(options, validatorFactory, marshalFactory, networkDriver, authorizationBuilder, Enumerable.Empty <IRequestStreamWrapper>(), loggerFactory.CreateLogger <DefaultRequestHandler>());

            ObjectOperations objectOperations = new ObjectOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>());

            _objectClient = new S3ObjectClient(objectOperations);

            BucketOperations bucketOperations = new BucketOperations(requestHandler);

            _bucketClient = new S3BucketClient(bucketOperations);

            MultipartOperations multipartOperations = new MultipartOperations(requestHandler, Enumerable.Empty <IRequestWrapper>(), Enumerable.Empty <IResponseWrapper>());

            _multipartClient = new S3MultipartClient(multipartOperations, objectOperations);

            Transfer = new Transfer(objectOperations, multipartOperations);
        }
        /**
         * Constructor.
         */
        private ModuleContext(ClassLoader loader)
        {
            _loader = loader;

            _marshalFactory = new MarshalFactory(this);
            _exprFactory    = new ExprFactory();

            string [] empty = new String[0];
            _stdClassDef = new InterpretedClassDef("stdClass", null, empty, empty);
            _stdClass    = new QuercusClass(this, _stdClassDef, null);

            _staticClasses.put(_stdClass.getName(), _stdClassDef);
        }