public static String json()

in atomos.utils/atomos.utils.substrate.impl/src/main/java/org/apache/felix/atomos/utils/substrate/impl/json/ReflectJsonUtil.java [74:144]


    public static String json(final ReflectionClassConfig reflectConfig)
    {
        final StringBuilder builder = new StringBuilder();
        builder.append(ind(1)).append(CLASS_START);

        builder.append(ind(2)).append(
            String.format(CLASS_NAME, reflectConfig.getClassName()));

        final AtomicReference<String> comma = new AtomicReference<>("");
        if (!reflectConfig.getFields().isEmpty())
        {
            builder.append(COMMA_ENTER).append(ind(2)).append(FIELDS_START);
            reflectConfig.getFields().stream().sorted(
                DefaultReflectionClassConfiguration.fc).forEachOrdered(
                    f -> builder.append(comma.getAndSet(COMMA_ENTER)).append(
                        ind(3)).append("{").append(
                            String.format(FIELD_NAME, f.getFieldName())).append("}"));
            builder.append('\n').append(ind(2)).append(FIELDS_END);
        }

        comma.set("");
        if (!reflectConfig.getMethods().isEmpty()
            || !reflectConfig.getConstructors().isEmpty())
        {
            builder.append(COMMA_ENTER).append(ind(2)).append(METHODS_START);
            reflectConfig.getConstructors().stream().sorted(
                DefaultReflectionClassConfiguration.cc).forEachOrdered(c -> {
                    builder.append(comma.getAndSet(COMMA_ENTER)).append(ind(3)).append(
                        "{").append(String.format(METHOD_NAME, CONSTRUCTOR_METHOD_NAME));

                    if (c.getMethodParameterTypes() != null)
                    {
                        String types = Stream.of(
                            c.getMethodParameterTypes()).sequential().collect(
                                Collectors.joining("\",\""));
                        if (!types.isEmpty())
                        {
                            types = "\"" + types + "\"";
                        }
                        builder.append(COMMA_SPACE).append(
                            String.format(PARAMETER_TYPE, types));
                    }
                    builder.append("}");
                });

            reflectConfig.getMethods().stream().sorted(
                DefaultReflectionClassConfiguration.mc).forEachOrdered(m -> {
                    builder.append(comma.getAndSet(COMMA_ENTER))//
                        .append(ind(3)).append("{").append(
                            String.format(METHOD_NAME, m.getName()));
                    if (m.getMethodParameterTypes() != null)
                    {
                        String types = Stream.of(
                            m.getMethodParameterTypes()).sequential().collect(
                                Collectors.joining("\",\""));
                        if (!types.isEmpty())
                        {
                            types = "\"" + types + "\"";
                        }
                        builder.append(COMMA_SPACE).append(
                            String.format(PARAMETER_TYPE, types));
                    }
                    builder.append("}");
                });
            builder.append('\n').append(ind(2)).append(METHODS_END);
        }

        builder.append('\n').append(ind(1)).append(CLASS_END);

        return builder.toString();
    }