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();
}