src/main/java/js/container/ArgumentsProcessor.java
public Object[] preProcessArguments(ManagedClassSPI managedClass, Object... args) {
		// arguments can be null if on invocations chain there is Proxy handler invoked with no arguments
		if (args == null) {
			args = EMPTY_ARGS;
		}
		if (managedClass.getImplementationClass() == null) {
			return args;
		}
		Constructor<?> constructor = managedClass.getConstructor();

		// managed class constructor parameters have the same limitation as injected fields: they must be a managed
		// class on their turn; it is considered a bug trying to use not managed classes as constructor argument

		// because managed class is not generic is safe to use getParameterTypes instead of getGenericParameterTypes
		final Class<?>[] types = constructor.getParameterTypes();
		return preProcessArguments(managedClass, constructor, types, args);
	}
public Object[] preProcessArguments(ManagedClassSPI managedClass, Object... args) {
		// arguments can be null if on invocations chain there is Proxy handler invoked with no arguments
		if (args == null) {
			args = EMPTY_ARGS;
		}
		if (managedClass.getImplementationClass() == null) {
			return args;
		}
		Constructor<?> constructor = managedClass.getConstructor();

		// managed class constructor parameters have the same limitation as injected fields: they must be a managed
		// class on their turn; it is considered a bug trying to use not managed classes as constructor argument

		// because managed class is not generic is safe to use getParameterTypes instead of getGenericParameterTypes
		final Class<?>[] types = constructor.getParameterTypes();
		return preProcessArguments(managedClass, constructor, types, args);
	}
public Object [ ] preProcessArguments ( ManagedClassSPI managedClass , Object ... args ) { // arguments can be null if on invocations chain there is Proxy handler invoked with no arguments
 if ( args == null ) { args = EMPTY_ARGS ; } if ( managedClass . getImplementationClass ( ) == null ) { return args ; } Constructor < ? > constructor = managedClass . getConstructor ( ) ; // managed class constructor parameters have the same limitation as injected fields: they must be a managed
 // class on their turn; it is considered a bug trying to use not managed classes as constructor argument
 // because managed class is not generic is safe to use getParameterTypes instead of getGenericParameterTypes
 final Class < ? > [ ] types = constructor . getParameterTypes ( ) ; return preProcessArguments ( managedClass , constructor , types , args ) ; }
Pre-process constructor arguments for local managed classes. A managed class is <code>local</code> if is of
{@link InstanceType#POJO} or {@link InstanceType#PROXY} type. Attempting to pre-process arguments for other managed class
types is silently ignored. This method delegates
{@link #preProcessArguments(ManagedClassSPI, Member, Class[], Object...)}.

@param managedClass managed class,
@param args constructor arguments.
@return processed arguments.
Pre - process constructor arguments for local managed classes . A managed class is <code > local< / code > if is of { @link InstanceType#POJO } or { @link InstanceType#PROXY } type . Attempting to pre - process arguments for other managed class types is silently ignored . This method delegates { @link #preProcessArguments ( ManagedClassSPI Member Class [] Object ... ) } .