title: Sonar 'Source files should not have any duplicated blocks' rule doesn't distinguish different literals
body: <p>I have a simple two-level hierarchy made up of an abstract superclass named AbstractTable,
  and three specific subclasses, Table1, Table2 and Table3.</p>
  <p>Each subclass provide one different implementation for three absract methods.<br />
  For example, Table1 class says:</p>
  <pre class="lang-java prettyprint-override"><code>  @Override
    protected String getSequence() {
      return &quot;seq_table1&quot;;
    }
    @Override
    protected String getIdColumn() {
      return &quot;id_table1&quot;;
    }
    @Override
    protected String getTable() {
      return &quot;table1&quot;;
    }
  </code></pre>
  <p>Table2 and Table3 have similar implementations, they response different literals.<br />
  However, Sonar does not seem to distinguish the different literals and he tells me that all the lines are duplicated.<br />
  <strong>Rule: Source files should not have any duplicated blocks.</strong></p>
  <p>Why? I think sonar should consider different literals as different lines.</p>
  <p><strong>Is the current operation of the rule correct?</strong>
  <strong>Can anyone explain to me how to pass the rule in these situations?</strong></p>
  <p>Thanks for advance.</p>