[ https://issues.apache.org/jira/browse/PIVOT-1045?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16905665#comment-16905665 ]
Roger Whitcomb commented on PIVOT-1045: --------------------------------------- Other candidates include: * CalendarDateSpinnerData * QueryServlet.Path * ResultList * FileObjectList ( ? ) * FileList ( ? ) (these two are not completely read-only but only allow "add") * Sequence.ImmutablePath Other things that could be looked at: * The immutable list has other methods (such as "clear()" that are not allowed, so we could build a second base class for those) (see EnumList also) * ImmutableSet has a slightly different set of disallowed operations, so we could build ReadOnlySet .... maybe... * ImmutableMap could be looked at too. * EnumSet and EnumMap look a lot like these "Immutable" variants, so .... * BeanAdapter has a bunch of unsupported operations: is this a candidate also for a base class? > Refactor read-only classes to use a common abstract class to reduce code > ------------------------------------------------------------------------ > > Key: PIVOT-1045 > URL: https://issues.apache.org/jira/browse/PIVOT-1045 > Project: Pivot > Issue Type: Improvement > Components: core-collections > Reporter: Roger Whitcomb > Assignee: Roger Whitcomb > Priority: Minor > > All of the "read-only" collection classes (such as ArrayAdapter, EnumList, > ImmutableList) share the concept that "add", "insert", "remove", etc. all > throw exceptions because they are unsupported in a read-only collection. It > would reduce code and expose the common functionality if they were all > implemented on top of a single abstract class that provides a uniform > implementation of these unsupported methods. > I propose to implement a ReadOnlySequence class that does this and refactor > all other existing places (at least) with the common subclass. -- This message was sent by Atlassian JIRA (v7.6.14#76016)