code: function (obj) {
          this.obj = obj;
          /**
               * Check if the wrapped object is defined
               * @returns true if the wrapped object is defined, false otherwise
               */
          this.isPresent = function () {
            return angular.isDefined(this.obj) && this.obj !== null;
          };
          /**
               * Return the wrapped object or an empty object
               * @returns the wrapped objector an empty object
               */
          this.orEmptyObj = function () {
            if (this.isPresent()) {
              return this.obj;
            }
            return {};
          };
          /**
               * Return the wrapped object or the given second choice
               * @returns the wrapped object or the given second choice
               */
          this.or = function (secondChoice) {
            if (this.isPresent()) {
              return this.obj;
            }
            return secondChoice;
          };
        }
docs: Optional class to handle undefined or null
  @param obj the object to wrap