CMSgov/dpc-app

View on GitHub
dpc-common/src/main/java/gov/cms/dpc/fhir/helpers/FHIRHelpers.java

Summary

Maintainability
A
2 hrs
Test Coverage

Method registerOrganization has 32 lines of code (exceeds 25 allowed). Consider refactoring.
Open

    public static String registerOrganization(IGenericClient client, IParser parser, String organizationID, String organizationNPI, String adminURL) throws IOException {
        // Random number generator for Org NPI
        // Register an organization, and a token
        // Read in the test file
        String macaroon;
Severity: Minor
Found in dpc-common/src/main/java/gov/cms/dpc/fhir/helpers/FHIRHelpers.java - About 1 hr to fix

    Method registerOrganization has 5 arguments (exceeds 4 allowed). Consider refactoring.
    Open

        public static String registerOrganization(IGenericClient client, IParser parser, String organizationID, String organizationNPI, String adminURL) throws IOException {
    Severity: Minor
    Found in dpc-common/src/main/java/gov/cms/dpc/fhir/helpers/FHIRHelpers.java - About 35 mins to fix

      Add a private constructor to hide the implicit public one.
      Open

      public class FHIRHelpers {

      Utility classes, which are collections of static members, are not meant to be instantiated. Even abstract utility classes, which can be extended, should not have public constructors.

      Java adds an implicit public constructor to every class which does not define at least one explicitly. Hence, at least one non-public constructor should be defined.

      Noncompliant Code Example

      class StringUtils { // Noncompliant
      
        public static String concatenate(String s1, String s2) {
          return s1 + s2;
        }
      
      }
      

      Compliant Solution

      class StringUtils { // Compliant
      
        private StringUtils() {
          throw new IllegalStateException("Utility class");
        }
      
        public static String concatenate(String s1, String s2) {
          return s1 + s2;
        }
      
      }
      

      Exceptions

      When class contains public static void main(String[] args) method it is not considered as utility class and will be ignored by this rule.

      Identical blocks of code found in 2 locations. Consider refactoring.
      Open

          public static class MacaroonsInterceptor implements IClientInterceptor {
      
              private String macaroon;
      
              MacaroonsInterceptor(String macaroon) {
      dpc-testing/src/main/java/gov/cms/dpc/testing/APIAuthHelpers.java on lines 333..358

      Duplicated Code

      Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:

      Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.

      When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).

      Tuning

      This issue has a mass of 69.

      We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.

      The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.

      If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.

      See codeclimate-duplication's documentation for more information about tuning the mass threshold in your .codeclimate.yml.

      Refactorings

      Further Reading

      There are no issues that match your filters.

      Category
      Status