sebastian-software/core

View on GitHub
source/class/core/property/Multi.js

Summary

Maintainability
F
6 days
Test Coverage

File Multi.js has 524 lines of code (exceeds 250 allowed). Consider refactoring.
Open

/*
==================================================================================================
  Core - JavaScript Foundation
  Copyright 2010-2012 Zynga Inc.
  Copyright 2012-2014 Sebastian Werner
Severity: Major
Found in source/class/core/property/Multi.js - About 1 day to fix

    Function create has 200 lines of code (exceeds 25 allowed). Consider refactoring.
    Open

            create : function(config)
            {
                /*
                ---------------------------------------------------------------------------
                     INTRO: IDENTICAL BETWEEN SIMPLE AND MULTI
    Severity: Major
    Found in source/class/core/property/Multi.js - About 1 day to fix

      Function importData has 98 lines of code (exceeds 25 allowed). Consider refactoring.
      Open

              importData : function(obj, values, oldValues, field)
              {
                  // Check existence of data structure
                  var data = obj[store];
                  if (!data) {
      Severity: Major
      Found in source/class/core/property/Multi.js - About 3 hrs to fix

        Function moveObject has 80 lines of code (exceeds 25 allowed). Consider refactoring.
        Open

                moveObject : function(obj, newParent, oldParent)
                {
                    // Fast compare (e.g. both null - should not happen, but still)
                    if (newParent == oldParent) {
                        return;
        Severity: Major
        Found in source/class/core/property/Multi.js - About 3 hrs to fix

          Function changeInheritedHelper has 69 lines of code (exceeds 25 allowed). Consider refactoring.
          Open

              var changeInheritedHelper = function(obj, newValue, oldValue, config)
              {
                  // TODO: Improved this lookup via $$children
                  if (!obj._getChildren) {
                      return;
          Severity: Major
          Found in source/class/core/property/Multi.js - About 2 hrs to fix

            Function resetter has 56 lines of code (exceeds 25 allowed). Consider refactoring.
            Open

                        var resetter = function(modifyPriority)
                        {
                            return function(value)
                            {
                                var context = this;
            Severity: Major
            Found in source/class/core/property/Multi.js - About 2 hrs to fix

              Function setter has 50 lines of code (exceeds 25 allowed). Consider refactoring.
              Open

                          var setter = function(modifyPriority)
                          {
                              return function(newValue)
                              {
                                  var context = this;
              Severity: Minor
              Found in source/class/core/property/Multi.js - About 2 hrs to fix

                Function getter has 41 lines of code (exceeds 25 allowed). Consider refactoring.
                Open

                            var getter = function()
                            {
                                var context = this;
                
                                if (jasy.Env.isSet("debug")) {
                Severity: Minor
                Found in source/class/core/property/Multi.js - About 1 hr to fix

                  Avoid deeply nested control flow statements.
                  Open

                                              if (!config.nullable) {
                                                  obj.error("Missing value for: " + propertyName + " (during reset() - from theme system)");
                                              }
                  Severity: Major
                  Found in source/class/core/property/Multi.js - About 45 mins to fix

                    Avoid too many return statements within this function.
                    Open

                                            return context[currentGetter](name);
                    Severity: Major
                    Found in source/class/core/property/Multi.js - About 30 mins to fix

                      Avoid too many return statements within this function.
                      Open

                                          return data[propertyId+currentPriority];
                      Severity: Major
                      Found in source/class/core/property/Multi.js - About 30 mins to fix

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

                                                if (newValue !== oldValue)
                                                {
                                                    // Call apply
                                                    if (propertyApply) {
                                                        context[propertyApply](newValue, oldValue, config.name);
                        Severity: Major
                        Found in source/class/core/property/Multi.js and 1 other location - About 3 hrs to fix
                        source/class/core/property/Multi.js on lines 418..437

                        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 109.

                        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

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

                                            if (oldPriority === modifyPriority && oldValue !== newValue)
                                            {
                                                // Call apply
                                                if (propertyApply) {
                                                    context[propertyApply](newValue, oldValue, config.name);
                        Severity: Major
                        Found in source/class/core/property/Multi.js and 1 other location - About 3 hrs to fix
                        source/class/core/property/Multi.js on lines 319..338

                        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 109.

                        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

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

                                            for (var newPriority=modifyPriority-1; newPriority>0; newPriority--)
                                            {
                                                newGetter = priorityToFieldConfig[newPriority].get;
                                                if (newGetter) {
                                                    newValue = obj[newGetter] ? obj[newGetter](propertyName) : Undefined;
                        Severity: Major
                        Found in source/class/core/property/Multi.js and 1 other location - About 3 hrs to fix
                        source/class/core/property/Multi.js on lines 376..388

                        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 107.

                        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

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

                                                for (var newPriority=modifyPriority-1; newPriority>0; newPriority--)
                                                {
                                                    newGetter = priorityToFieldConfig[newPriority].get;
                                                    if (newGetter) {
                                                        newValue = context[newGetter] ? context[newGetter](name) : Undefined;
                        Severity: Major
                        Found in source/class/core/property/Multi.js and 1 other location - About 3 hrs to fix
                        source/class/core/property/Multi.js on lines 662..674

                        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 107.

                        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

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

                                                    if (propertyInit !== Undefined) {
                                                        newValue = propertyInit;
                                                    }
                                                    else if (jasy.Env.isSet("debug"))
                                                    {
                        Severity: Minor
                        Found in source/class/core/property/Multi.js and 1 other location - About 45 mins to fix
                        source/class/core/property/Simple.js on lines 289..298

                        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 50.

                        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