Package org.jboss.errai.ioc.rebind.ioc.injector.async

Examples of org.jboss.errai.ioc.rebind.ioc.injector.async.AsyncInjectorResolveCallback


        blockBuilder.append(getInjectorOrProxy(
            ctx,
            InjectableInstance.getParameterInjectedInstance(parms[i], null, ctx),
            parmType,
            qualifyingMetadata,
            true, new AsyncInjectorResolveCallback() {
          @Override
          public void onResolved(final Injector resolvedInjector) {

            final MetaClass injectedType = resolvedInjector.getInjectedType();
            final MetaClass creationType = MetaClassFactory
View Full Code Here


          fieldAccessStmt = InjectUtil.setPublicOrPrivateFieldValue(ctx, beanRefStmt, field, Refs.get("bean"));
        }

        try {
          val = AsyncInjectUtil.getInjectorOrProxy(ctx, getInjectableInstance(ctx), field.getType(), qualifyingMetadata,
              new AsyncInjectorResolveCallback() {
                @Override
                public void onResolved(final Injector resolvedInjector) {
                  generateCallback(InjectUtil.getVarNameFromType(resolvedInjector.getConcreteInjectedType(), field),
                      resolvedInjector.getInjectedType(), ctx, fieldAccessStmt,
                      Stmt.loadVariable("async").invoke("finish", Refs.get("this")));
                }
              });
        }
        catch (InjectionFailure e) {
          throw UnsatisfiedDependenciesException.createWithSingleFieldFailure(field, field.getDeclaringClass(),
              field.getType(), e.getMessage());
        }
        catch (UnproxyableClassException e) {
          final String err = "your object graph may have cyclical dependencies and the cycle could not be proxied. " +
              "use of the @Dependent scope and @New qualifier may not " +
              "produce properly initalized objects for: " + getInjector().getInjectedType().getFullyQualifiedName() + "\n" +
              "\t Offending node: " + toString() + "\n" +
              "\t Note          : this issue can be resolved by making "
              + e.getUnproxyableClass().getFullyQualifiedName() + " proxyable. Introduce a default" +
              " no-arg constructor and make sure the class is non-final.";

          throw UnsatisfiedDependenciesException.createWithSingleFieldFailure(field, field.getDeclaringClass(),
              field.getType(), err);
        }

        processingContext.append(val);

        break;
      }

      case PrivateMethod:
        ctx.addExposedMethod(method);

      case Method: {
        for (final MetaParameter parm : method.getParameters()) {
          ctx.getProcessingContext().handleDiscoveryOfType(
              InjectableInstance.getParameterInjectedInstance(parm, injector, ctx), parm.getType());
        }

        final AtomicInteger atomicInteger = new AtomicInteger(0);

        final Statement[] args = AsyncInjectUtil.resolveInjectionDependencies(method.getParameters(), ctx, method,
            new AsyncInjectorResolveCallback() {
              @Override
              public void onResolved(final Injector resolvedInjector) {
                generateCallback(
                    InjectUtil.getVarNameFromType(resolvedInjector.getConcreteInjectedType(),
                        method.getParameters()[atomicInteger.getAndIncrement()]),
View Full Code Here

        blockBuilder.append(getInjectorOrProxy(
            ctx,
            InjectableInstance.getParameterInjectedInstance(parms[i], null, ctx),
            parmType,
            qualifyingMetadata,
            true, new AsyncInjectorResolveCallback() {
          @Override
          public void onResolved(final Injector resolvedInjector) {

            final MetaClass injectedType = resolvedInjector.getInjectedType();
            final MetaClass creationType = MetaClassFactory
View Full Code Here

          fieldAccessStmt = InjectUtil.setPublicOrPrivateFieldValue(ctx, beanRefStmt, field, Refs.get("bean"));
        }

        try {
          val = AsyncInjectUtil.getInjectorOrProxy(ctx, getInjectableInstance(ctx), field.getType(), qualifyingMetadata,
              new AsyncInjectorResolveCallback() {
                @Override
                public void onResolved(final Injector resolvedInjector) {
                  generateCallback(InjectUtil.getVarNameFromType(resolvedInjector.getConcreteInjectedType(), field),
                      resolvedInjector.getInjectedType(), ctx, fieldAccessStmt,
                      Stmt.loadVariable("async").invoke("finish", Refs.get("this")));
                }
              });
        }
        catch (InjectionFailure e) {
          throw UnsatisfiedDependenciesException.createWithSingleFieldFailure(field, field.getDeclaringClass(),
              field.getType(), e.getMessage());
        }
        catch (UnproxyableClassException e) {
          final String err = "your object graph may have cyclical dependencies and the cycle could not be proxied. " +
              "use of the @Dependent scope and @New qualifier may not " +
              "produce properly initalized objects for: " + getInjector().getInjectedType().getFullyQualifiedName() + "\n" +
              "\t Offending node: " + toString() + "\n" +
              "\t Note          : this issue can be resolved by making "
              + e.getUnproxyableClass().getFullyQualifiedName() + " proxyable. Introduce a default" +
              " no-arg constructor and make sure the class is non-final.";

          throw UnsatisfiedDependenciesException.createWithSingleFieldFailure(field, field.getDeclaringClass(),
              field.getType(), err);
        }

        processingContext.append(val);

        break;
      }

      case PrivateMethod:
        ctx.addExposedMethod(method);

      case Method: {
        for (final MetaParameter parm : method.getParameters()) {
          ctx.getProcessingContext().handleDiscoveryOfType(
              InjectableInstance.getParameterInjectedInstance(parm, injector, ctx), parm.getType());
        }

        final AtomicInteger atomicInteger = new AtomicInteger(0);

        final Statement[] args = AsyncInjectUtil.resolveInjectionDependencies(method.getParameters(), ctx, method,
            new AsyncInjectorResolveCallback() {
              @Override
              public void onResolved(final Injector resolvedInjector) {
                generateCallback(
                    InjectUtil.getVarNameFromType(resolvedInjector.getConcreteInjectedType(),
                        method.getParameters()[atomicInteger.getAndIncrement()]),
View Full Code Here

TOP

Related Classes of org.jboss.errai.ioc.rebind.ioc.injector.async.AsyncInjectorResolveCallback

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.