You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by GitBox <gi...@apache.org> on 2019/06/25 03:37:19 UTC

[GitHub] [incubator-shardingsphere] wgy8283335 opened a new issue #2606: The implementation of "toString()" method of Interface "Alterable" in "TablePlaceholder" related questions?

wgy8283335 opened a new issue #2606: The implementation of "toString()" method of Interface "Alterable" in "TablePlaceholder" related questions?
URL: https://github.com/apache/incubator-shardingsphere/issues/2606
 
 
   ## Question
   The "toString(final RoutingUnit routingUnit, final Map<String, String> logicAndActualTables)" method in "TablePlaceholder". "routingUnit" is not used in the method definition. The "routingUnit" is useful for another two implementation classes : IndexPlaceHolder,InsertValuePlaceHolder. So, in order to keep the "Alterable" is suitable for the method caller and make the code in "TablePlaceHolder" more meaningful. My suggestion is below:
   original code is
   ```
       @Override
       public String toString(final RoutingUnit routingUnit, final Map<String, String> logicAndActualTables) {
           String actualTableName = logicAndActualTables.get(logicTableName);
           actualTableName = null == actualTableName ? logicTableName : actualTableName;
           return Joiner.on("").join(quoteCharacter.getStartDelimiter(), actualTableName, quoteCharacter.getEndDelimiter());
       }
   ```
   Then ,split the method into two pieces.
   ```
      @Override
       public String toString(final RoutingUnit routingUnit, final Map<String, String> logicAndActualTables) {
                toString(logicAndActualTables);
       }
   ```
   ```
   private String toString(final Map<String, String> logicAndActualTables){
           String actualTableName = logicAndActualTables.get(logicTableName);
           actualTableName = null == actualTableName ? logicTableName : actualTableName;
           return Joiner.on("").join(quoteCharacter.getStartDelimiter(), actualTableName, quoteCharacter.getEndDelimiter());
   }
   ```
   This will make clearly that the "routingUnit" is not used.And the reason why use it, is only for adaptable to "Alterable" Interface. 
   It is just an immature suggestion, I'd like to discuss this question with you.
   Thanks a lot.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services