uber / piranha

A tool for refactoring code related to feature flag APIs
Apache License 2.0
2.27k stars 190 forks source link

Seeking help on below rule #698

Closed rajeshchinnam closed 1 day ago

rajeshchinnam commented 1 week ago

Hi @danieltrt

I have below rule

[[rules]] name = "replace_isToggleEnabled_with_boolean_literal" query = """(( (methodinvocation name : () @name arguments: ((argument_list ([ (fieldaccess field: ()@argument) (_) @argument ])) )

) @method_invocation

) (#eq? @name "get") (#eq? @argument "@stale_flag_name") )""" replace_node = "method_invocation" replace = "@treated" groups = ["replace_expression_with_boolean_literal"] holes = ["treated", "stale_flag_name"]

when I apply the rule on the method

public String get(String requestNumberPrefix, String request) { if (Boolean.parseBoolean(tenantConfiguration.get(TenantConfigurationKey.FEATURE_SEQUENTIAL_NUMBERS_FOR_WARRANTY))) { log.info("request number prefix is {}", requestNumberPrefix); Long nextSequenceId = getNextSequenceIdAndSave(requestNumberPrefix, request); String sequenceNumber = String.format(REQUEST_NUMBER_FORMAT, nextSequenceId); return requestNumberPrefix + sequenceNumber; } return generateRandomNumber(); }

its modifiying as
public String get(String requestNumberPrefix, String request) { if (Boolean.parseBoolean(true)) { log.info("request number prefix is {}", requestNumberPrefix); Long nextSequenceId = getNextSequenceIdAndSave(requestNumberPrefix, request); String sequenceNumber = String.format(REQUEST_NUMBER_FORMAT, nextSequenceId); return requestNumberPrefix + sequenceNumber; } return generateRandomNumber(); } I want to remove Boolean.parseBoolean also so my feature clean up works as expected

public String get(String requestNumberPrefix, String request) {

  log.info("request number prefix is {}", requestNumberPrefix);
  Long nextSequenceId = getNextSequenceIdAndSave(requestNumberPrefix, request);
  String sequenceNumber = String.format(REQUEST_NUMBER_FORMAT, nextSequenceId);
  return requestNumberPrefix + sequenceNumber;

} can you please suggest how can i update my rule