class InputEntityDecorators {

    public static Decorator decorators( final Decorator... decorators )
    {
        return new Decorator()
        {
            @Override
            public InputEntityVisitor apply( InputEntityVisitor from )
            {
                for ( Decorator decorator : decorators )
                {
                    from = decorator.apply( from );
                }
                return from;
            }

            @Override
            public boolean isMutable()
            {
                return Stream.of( decorators ).anyMatch( Decorator::isMutable );
            }
        };
    }

    private  InputEntityDecorators();

}