Home / Function/ validUris() — netty Function Reference

validUris() — netty Function Reference

Architecture documentation for the validUris() function in DefaultHttpRequestTest.java from the netty codebase.

Entity Profile

Dependency Diagram

graph TD
  23cb7bc9_d30a_9dcb_9da0_98abbb35d892["validUris()"]
  ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca["DefaultHttpRequestTest"]
  23cb7bc9_d30a_9dcb_9da0_98abbb35d892 -->|defined in| ede2b2a6_bd1f_83bc_7e1c_cc8e09e7d8ca
  style 23cb7bc9_d30a_9dcb_9da0_98abbb35d892 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

codec-http/src/test/java/io/netty/handler/codec/http/DefaultHttpRequestTest.java lines 55–115

    public static Stream<String> validUris() {
        String pdigit = "123456789";
        String digit = '0' + pdigit;
        String digitcolon = digit + ':';
        String alpha = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String alphanum = alpha + digit;
        String alphanumdot = alphanum + '.';
        String unreserved = alphanumdot + "-_~";
        String subdelims = "$&%=!+,;'()";
        String userinfochars = unreserved + subdelims + ':';
        String pathchars = unreserved + '/';
        String querychars = pathchars + subdelims + '?';
        return new SplittableRandom().longs(1000)
                .mapToObj(seed -> {
                    SplittableRandom rng = new SplittableRandom(seed);
                    String start;
                    String path;
                    String query;
                    String fragment;
                    if (rng.nextBoolean()) {
                        String scheme = rng.nextBoolean() ? "http://" : "HTTP://";
                        String userinfo = rng.nextBoolean() ? "" : pick(rng, userinfochars, 1, 8) + '@';
                        String host;
                        String port;
                        switch (rng.nextInt(3)) {
                            case 0:
                                host = pick(rng, alphanum, 1, 1) + pick(rng, alphanumdot, 1, 5);
                                break;
                            case 1:
                                host = pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2) + '.' +
                                        pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 2);
                                break;
                            default:
                                host = '[' + pick(rng, digitcolon, 1, 8) + ']';
                                break;
                        }
                        if (rng.nextBoolean()) {
                            port = ':' + pick(rng, pdigit, 1, 1) + pick(rng, digit, 0, 4);
                        } else {
                            port = "";
                        }
                        start = scheme + userinfo + host + port;
                    } else {
                        start = "";
                    }
                    path = '/' + pick(rng, pathchars, 0, 8);
                    if (rng.nextBoolean()) {
                        query = '?' + pick(rng, querychars, 0, 8);
                    } else {
                        query = "";
                    }
                    if (rng.nextBoolean()) {
                        fragment = '#' + pick(rng, querychars, 0, 8);
                    } else {
                        fragment = "";
                    }
                    return start + path + query + fragment;
                });
    }

Domain

Subdomains

Frequently Asked Questions

What does validUris() do?
validUris() is a function in the netty codebase, defined in codec-http/src/test/java/io/netty/handler/codec/http/DefaultHttpRequestTest.java.
Where is validUris() defined?
validUris() is defined in codec-http/src/test/java/io/netty/handler/codec/http/DefaultHttpRequestTest.java at line 55.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free