[ https://issues.apache.org/jira/browse/CASSANDRA-18547?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Brad Schoening updated CASSANDRA-18547: --------------------------------------- Description: This change refactors the On/Off switch implemented in the class SwitchCommand and subclass SwitchCommandWithValue of cqlshmain.py to use an Enum with static methods instead of custom classes. The body of on_off_switch + enum definition requires just 15 lines of code vs 33 in SwitchCommand. The existing code is hard to read, including the usage in the code, which instantiates a SwitchCommand object in-order to invoke the execute method: {code:java} self.tracing_enabled = SwitchCommand("TRACING", "Tracing").execute(self.tracing_enabled, parsed, self.printerr){code} this can be replaced by a more familiar direct function call: {code:java} self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing", self.tracing_enabled, parsed.get_binding('switch')){code} The refactoring would rework the command output for consistency. Instead of the current: {code:java} > tracing on Now Tracing is enabled > paging on Query paging is already enabled. Use PAGING OFF to disable. > expand on Now Expanded output is enabled {code} replace with more succinct and consistent, using 'ON/OFF' instead of enabled/disabled and removing the redundant 'Now': {code:java} > tracing on TRACING set to ON > paging on PAGING is already ON > expand on EXPAND set to ON {code} was: This change refactors the On/Off switch implemented in the class SwitchCommand and subclass SwitchCommandWithValue of cqlshmain.py to use an Enum with static methods instead of custom classes. The body of on_off_switch requires just 15 lines of code vs 33 The existing code is hard to read, including the usage in the code, which instantiates a SwitchCommand object in-order to invoke the execute method: {code:java} self.tracing_enabled = SwitchCommand("TRACING", "Tracing").execute(self.tracing_enabled, parsed, self.printerr){code} this can be replaced by a more familiar direct function call: {code:java} self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing", self.tracing_enabled, parsed.get_binding('switch')){code} The refactoring would rework the command output for consistency. Instead of the current: {code:java} > tracing on Now Tracing is enabled > paging on Query paging is already enabled. Use PAGING OFF to disable. > expand on Now Expanded output is enabled {code} replace with more succinct and consistent, using 'ON/OFF' instead of enabled/disabled and removing the redundant 'Now': {code:java} > tracing on TRACING set to ON > paging on PAGING is already ON > expand on EXPAND set to ON {code} > Refactor cqlsh On/Off switch implementation > ------------------------------------------- > > Key: CASSANDRA-18547 > URL: https://issues.apache.org/jira/browse/CASSANDRA-18547 > Project: Cassandra > Issue Type: Improvement > Components: CQL/Interpreter > Reporter: Brad Schoening > Assignee: Brad Schoening > Priority: Normal > Fix For: 5.x > > > This change refactors the On/Off switch implemented in the class > SwitchCommand and subclass SwitchCommandWithValue of cqlshmain.py to use an > Enum with static methods instead of custom classes. > The body of on_off_switch + enum definition requires just 15 lines of code vs > 33 in SwitchCommand. > The existing code is hard to read, including the usage in the code, which > instantiates a SwitchCommand object in-order to invoke the execute method: > > {code:java} > self.tracing_enabled = SwitchCommand("TRACING", > "Tracing").execute(self.tracing_enabled, parsed, self.printerr){code} > this can be replaced by a more familiar direct function call: > {code:java} > self.tracing_enabled = self.on_off_toggle("TRACING", "Tracing", > self.tracing_enabled, parsed.get_binding('switch')){code} > > The refactoring would rework the command output for consistency. Instead of > the current: > {code:java} > > tracing on > Now Tracing is enabled > > paging on > Query paging is already enabled. Use PAGING OFF to disable. > > expand on > Now Expanded output is enabled > {code} > replace with more succinct and consistent, using 'ON/OFF' instead of > enabled/disabled and removing the redundant 'Now': > {code:java} > > tracing on > TRACING set to ON > > paging on > PAGING is already ON > > expand on > EXPAND set to ON > {code} > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org For additional commands, e-mail: commits-h...@cassandra.apache.org