[ https://issues.apache.org/jira/browse/TAP5-2764?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17775245#comment-17775245 ]
Ben Weidig commented on TAP5-2764: ---------------------------------- TheĀ {{empty()}} functionality was easy to add to {{{}JSONArray{}}}. However, adding it to {{JSONObject}} isn't possible in the same way, as the already existing specialized copy constructor {{JSONObject(JSONObject copyFrom, String... names)}} might conflict with it. > JSONArray improvements > ---------------------- > > Key: TAP5-2764 > URL: https://issues.apache.org/jira/browse/TAP5-2764 > Project: Tapestry 5 > Issue Type: Improvement > Components: tapestry-json > Reporter: Ben Weidig > Assignee: Ben Weidig > Priority: Minor > > The following improvements should be added to JSONArray: > *Implement {{List<Object>}}* > Right now, the type implements {{Collection<Object>}} but it could bei a > {{List<Object>}} instead. > As it's a thin wrapper arround {{ArrayList<Object>}} anyway, using a more > feature-packed interface makes sense, as there's almost no additional cost to > it. > *Fix {{Object remove(int)}} contract* > Index-based removal is a {{{}List{}}}-related method with a certain contract, > like throwing an Exception on invalid index arguments. > Event hough it _should be_ expected behavior on any {{{}List{}}}-like data > structures, it's going to be a breaking change here. > *Add {{static JSONArray empty()}}* > Similar to {{{}Collections.emptyList(){}}}, a convenience method for creating > an empty and immutable instance should be added to reduce object creation / > memory requirements, as an {{ArrayList}} will always needs some memory, even > if empty. > Implementation-wise, it would require a new (private) constructor that allows > setting the underlying data structure. > Then, {{empty()}} could simply use {{{}Collections.emptyList(){}}}. > {color:#FF0000}As the changes contain a breaking change, it should be > released in a minor-release, not patch.{color} > Related mailing list thread: > [https://lists.apache.org/thread/pf7hwy2tp5x7ktbzq9w2btwdd1xkyod2] -- This message was sent by Atlassian Jira (v8.20.10#820010)