Skip to content

Commit

Permalink
tmp
Browse files Browse the repository at this point in the history
Signed-off-by: David Kral <[email protected]>
  • Loading branch information
Verdent committed Feb 7, 2025
1 parent c8d2133 commit 4c82901
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -74,9 +74,6 @@ void writeComponent(ModelWriter writer, Set<String> declaredTokens, ImportOrgani
}
writer.write(">");
}
if (isArray()) {
writer.write("[]");
}
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -136,19 +136,19 @@ static TypeName genericTypeName(TypeName instance) {
static String fqName(TypeName instance) {
String name = calcName(instance, ".");
StringBuilder nameBuilder = new StringBuilder(instance.wildcard() ? "?" : name);
if (instance.array()) {
nameBuilder.append("[]");
}
Optional<TypeName> maybeComponentType = instance.componentType();
while (maybeComponentType.isPresent()) {
TypeName typeName = maybeComponentType.get();
if (typeName.array()) {
nameBuilder.append("[]");
maybeComponentType = typeName.componentType();
} else {
break;
}
}
// if (instance.array()) {
// nameBuilder.append("[]");
// }
// Optional<TypeName> maybeComponentType = instance.componentType();
// while (maybeComponentType.isPresent()) {
// TypeName typeName = maybeComponentType.get();
// if (typeName.array()) {
// nameBuilder.append("[]");
// maybeComponentType = typeName.componentType();
// } else {
// break;
// }
// }
return nameBuilder.toString();
}

Expand Down Expand Up @@ -368,21 +368,6 @@ private static String resolveClassName(TypeName instance) {
nameBuilder.append(">");
}

if (instance.array()) {
nameBuilder.append("[]");
}

Optional<TypeName> maybeComponentType = instance.componentType();
while (maybeComponentType.isPresent()) {
TypeName typeName = maybeComponentType.get();
if (typeName.array()) {
nameBuilder.append("[]");
maybeComponentType = typeName.componentType();
} else {
break;
}
}

return nameBuilder.toString();
}

Expand Down Expand Up @@ -418,6 +403,7 @@ static class Decorator implements Prototype.BuilderDecorator<TypeName.BuilderBas
@Override
public void decorate(TypeName.BuilderBase<?, ?> target) {
fixWildcards(target);
addArrayBracketsToTheName(target);
}

private void fixWildcards(TypeName.BuilderBase<?, ?> target) {
Expand Down Expand Up @@ -446,5 +432,30 @@ private void fixWildcards(TypeName.BuilderBase<?, ?> target) {
target.generic(true);
}
}

private void addArrayBracketsToTheName(TypeName.BuilderBase<?, ?> target) {
target.className()
//Strip all [] from the class name
.map(name -> name.replaceAll("\\[]", ""))
//Add the right amount of [] based on the component types
.map(name -> addArrayBrackets(target, name))
//Add [] if this type name is an array
.map(name -> target.array() ? name + "[]" : name)
.ifPresent(target::className);
}

private String addArrayBrackets(TypeName.BuilderBase<?, ?> target, String name) {
Optional<TypeName> componentType = target.componentType();
while (componentType.isPresent()) {
TypeName current = componentType.get();
if (current.array()) {
name += "[]";
componentType = current.componentType();
} else {
break;
}
}
return name;
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -527,11 +527,7 @@ private static void valueWritingMethod(JsonProperty property,
}

private static String ensureUpperStart(TypeName typeName) {
String str = typeName.className().replaceAll("\\[]", "Array");
if (typeName.array()) {
str += "Array";
}
return ensureUpperStart(str);
return ensureUpperStart(typeName.className().replaceAll("\\[]", "Array"));
}

private static String ensureUpperStart(String str) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@
import io.helidon.json.binding.Json;

@Json.Entity
//public record RecordWithArray(Integer[] intArray, Integer[][] intArray2) {
public record RecordWithArray(Integer[] intArray) {
public record RecordWithArray(Integer[] intArray, Integer[][] intArray2) {
//public record RecordWithArray(Integer[] intArray) {
}

0 comments on commit 4c82901

Please sign in to comment.