converts negative positions.

@param int $pos
@return int
@throws ValidatorOutOfBoundsException
516734
protected function getNormalizedPosition($pos)
    {
        if ($pos >= strlen($this->account) || $pos < -strlen($this->account)) {
            throw new ValidatorOutOfBoundsException("Cannot access offset $pos in String $this->account");

        }

        if ($pos >= 0) {
            return $pos;

        }
        return strlen($this->account) + $pos;
    }
578002
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getLogin();
                break;
            case 2:
                return $this->getNickname();
                break;
            case 3:
                return $this->getNicknameStripped();
                break;
            case 4:
                return $this->getPath();
                break;
            case 5:
                return $this->getWins();
                break;
            case 6:
                return $this->getOnlineTime();
                break;
            case 7:
                return $this->getLastOnline();
                break;
            default:
                return null;
                break;
        } // switch()
    }
674771
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getPersonId();
                break;
            case 2:
                return $this->getTeamId();
                break;
            case 3:
                return $this->getCreatedAt();
                break;
            case 4:
                return $this->getUpdatedAt();
                break;
            case 5:
                return $this->getVersion();
                break;
            case 6:
                return $this->getVersionCreatedAt();
                break;
            case 7:
                return $this->getVersionCreatedBy();
                break;
            case 8:
                return $this->getPersonIdVersion();
                break;
            case 9:
                return $this->getTeamIdVersion();
                break;
            default:
                return null;
                break;
        } // switch()
    }
369740
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getDealerId();
                break;
            case 2:
                return $this->getDay();
                break;
            case 3:
                return $this->getBegin();
                break;
            case 4:
                return $this->getEnd();
                break;
            case 5:
                return $this->getClosed();
                break;
            case 6:
                return $this->getPeriodBegin();
                break;
            case 7:
                return $this->getPeriodEnd();
                break;
            case 8:
                return $this->getCreatedAt();
                break;
            case 9:
                return $this->getUpdatedAt();
                break;
            case 10:
                return $this->getVersion();
                break;
            case 11:
                return $this->getVersionCreatedAt();
                break;
            case 12:
                return $this->getVersionCreatedBy();
                break;
            case 13:
                return $this->getDealerIdVersion();
                break;
            default:
                return null;
                break;
        } // switch()
    }
965378
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getUsername();
                break;
            case 2:
                return $this->getPassword();
                break;
            case 3:
                return $this->getSalt();
                break;
            case 4:
                return $this->getFirstname();
                break;
            case 5:
                return $this->getLastname();
                break;
            case 6:
                return $this->getEmail();
                break;
            case 7:
                return $this->getPhone();
                break;
            case 8:
                return $this->getMemo();
                break;
            case 9:
                return $this->getActivated();
                break;
            case 10:
                return $this->getLastLogin();
                break;
            case 11:
                return $this->getNotificationChange();
                break;
            case 12:
                return $this->getNotificationError();
                break;
            default:
                return null;
                break;
        } // switch()
    }
1234354
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getFeatureAvId();
                break;
            case 2:
                return $this->getFeatureFeatureTypeId();
                break;
            case 3:
                return $this->getLocale();
                break;
            case 4:
                return $this->getValue();
                break;
            case 5:
                return $this->getCreatedAt();
                break;
            case 6:
                return $this->getUpdatedAt();
                break;
            default:
                return null;
                break;
        } // switch()
    }
1091319
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getTitle();
                break;
            case 2:
                return $this->getSlug();
                break;
            case 3:
                return $this->getAthleteLabel();
                break;
            case 4:
                return $this->getObjectSlug();
                break;
            case 5:
                return $this->getObjectLabel();
                break;
            case 6:
                return $this->getObjectPluralLabel();
                break;
            case 7:
                return $this->getSkillSlug();
                break;
            case 8:
                return $this->getSkillLabel();
                break;
            case 9:
                return $this->getSkillPluralLabel();
                break;
            case 10:
                return $this->getSkillPictureUrl();
                break;
            case 11:
                return $this->getGroupSlug();
                break;
            case 12:
                return $this->getGroupLabel();
                break;
            case 13:
                return $this->getGroupPluralLabel();
                break;
            case 14:
                return $this->getTransitionLabel();
                break;
            case 15:
                return $this->getTransitionPluralLabel();
                break;
            case 16:
                return $this->getTransitionsSlug();
                break;
            case 17:
                return $this->getPositionSlug();
                break;
            case 18:
                return $this->getPositionLabel();
                break;
            case 19:
                return $this->getFeatureComposition();
                break;
            case 20:
                return $this->getFeatureTester();
                break;
            case 21:
                return $this->getIsDefault();
                break;
            default:
                return null;
                break;
        } // switch()
    }
436131
public function setByPosition($pos, $value)
    {
        switch ($pos) {
            case 0:
                $this->setId($value);
                break;
            case 1:
                $this->setTitle($value);
                break;
            case 2:
                $this->setSlug($value);
                break;
            case 3:
                $this->setAthleteLabel($value);
                break;
            case 4:
                $this->setObjectSlug($value);
                break;
            case 5:
                $this->setObjectLabel($value);
                break;
            case 6:
                $this->setObjectPluralLabel($value);
                break;
            case 7:
                $this->setSkillSlug($value);
                break;
            case 8:
                $this->setSkillLabel($value);
                break;
            case 9:
                $this->setSkillPluralLabel($value);
                break;
            case 10:
                $this->setSkillPictureUrl($value);
                break;
            case 11:
                $this->setGroupSlug($value);
                break;
            case 12:
                $this->setGroupLabel($value);
                break;
            case 13:
                $this->setGroupPluralLabel($value);
                break;
            case 14:
                $this->setTransitionLabel($value);
                break;
            case 15:
                $this->setTransitionPluralLabel($value);
                break;
            case 16:
                $this->setTransitionsSlug($value);
                break;
            case 17:
                $this->setPositionSlug($value);
                break;
            case 18:
                $this->setPositionLabel($value);
                break;
            case 19:
                $this->setFeatureComposition($value);
                break;
            case 20:
                $this->setFeatureTester($value);
                break;
            case 21:
                $this->setIsDefault($value);
                break;
        } // switch()

        return $this;
    }
175218
public function setByPosition($pos, $value)
    {
        switch ($pos) {
            case 0:
                $this->setId($value);
                break;
            case 1:
                $this->setSourceId($value);
                break;
            case 2:
                $this->setPageid($value);
                break;
            case 3:
                $this->setTitle($value);
                break;
            case 4:
                $this->setUrl($value);
                break;
            case 5:
                $this->setMime($value);
                break;
            case 6:
                $this->setWidth($value);
                break;
            case 7:
                $this->setHeight($value);
                break;
            case 8:
                $this->setSize($value);
                break;
            case 9:
                $this->setSha1($value);
                break;
            case 10:
                $this->setThumburl($value);
                break;
            case 11:
                $this->setThumbmime($value);
                break;
            case 12:
                $this->setThumbwidth($value);
                break;
            case 13:
                $this->setThumbheight($value);
                break;
            case 14:
                $this->setThumbsize($value);
                break;
            case 15:
                $this->setDescriptionurl($value);
                break;
            case 16:
                $this->setDescriptionurlshort($value);
                break;
            case 17:
                $this->setImagedescription($value);
                break;
            case 18:
                $this->setDatetimeoriginal($value);
                break;
            case 19:
                $this->setArtist($value);
                break;
            case 20:
                $this->setLicenseshortname($value);
                break;
            case 21:
                $this->setUsageterms($value);
                break;
            case 22:
                $this->setAttributionrequired($value);
                break;
            case 23:
                $this->setRestrictions($value);
                break;
            case 24:
                $this->setTimestamp($value);
                break;
            case 25:
                $this->setUser($value);
                break;
            case 26:
                $this->setUserid($value);
                break;
            case 27:
                $this->setMissing($value);
                break;
            case 28:
                $this->setKnown($value);
                break;
            case 29:
                $this->setImagerepository($value);
                break;
            case 30:
                $this->setCreatedAt($value);
                break;
            case 31:
                $this->setUpdatedAt($value);
                break;
        } // switch()

        return $this;
    }
548759
private function containsPosition(int $pos): bool {
        return $this->getStart() <= $pos && $pos <= $this->getEndPosition();
    }
812932
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getTrackuid();
                break;
            case 2:
                return $this->getGbxmapname();
                break;
            case 3:
                return $this->getTrackid();
                break;
            case 4:
                return $this->getUserid();
                break;
            case 5:
                return $this->getUsername();
                break;
            case 6:
                return $this->getUploadedat();
                break;
            case 7:
                return $this->getUpdatedat();
                break;
            case 8:
                return $this->getMaptype();
                break;
            case 9:
                return $this->getTitlepack();
                break;
            case 10:
                return $this->getStylename();
                break;
            case 11:
                return $this->getDisplaycost();
                break;
            case 12:
                return $this->getModname();
                break;
            case 13:
                return $this->getLightmap();
                break;
            case 14:
                return $this->getExeversion();
                break;
            case 15:
                return $this->getExebuild();
                break;
            case 16:
                return $this->getEnvironmentname();
                break;
            case 17:
                return $this->getVehiclename();
                break;
            case 18:
                return $this->getUnlimiterrequired();
                break;
            case 19:
                return $this->getRoutename();
                break;
            case 20:
                return $this->getLengthname();
                break;
            case 21:
                return $this->getLaps();
                break;
            case 22:
                return $this->getDifficultyname();
                break;
            case 23:
                return $this->getReplaytypename();
                break;
            case 24:
                return $this->getReplaywrid();
                break;
            case 25:
                return $this->getReplaywrtime();
                break;
            case 26:
                return $this->getReplaywruserid();
                break;
            case 27:
                return $this->getReplaywrusername();
                break;
            case 28:
                return $this->getRatingvotecount();
                break;
            case 29:
                return $this->getRatingvoteaverage();
                break;
            case 30:
                return $this->getReplaycount();
                break;
            case 31:
                return $this->getTrackvalue();
                break;
            case 32:
                return $this->getComments();
                break;
            case 33:
                return $this->getCommentscount();
                break;
            case 34:
                return $this->getAwardcount();
                break;
            case 35:
                return $this->getHasscreenshot();
                break;
            case 36:
                return $this->getHasthumbnail();
                break;
            case 37:
                return $this->getHasghostblocks();
                break;
            case 38:
                return $this->getEmbeddedobjectscount();
                break;
            default:
                return null;
                break;
        } // switch()
    }
997332
public function setByPosition($pos, $value)
    {
        switch ($pos) {
            case 0:
                $this->setId($value);
                break;
            case 1:
                $this->setSenderlogin($value);
                break;
            case 2:
                $this->setReceiverlogin($value);
                break;
            case 3:
                $this->setTransactionid($value);
                break;
            case 4:
                $this->setBillid($value);
                break;
            case 5:
                $this->setAmount($value);
                break;
            case 6:
                $this->setMessage($value);
                break;
            case 7:
                $this->setStatus($value);
                break;
            case 8:
                $this->setDatetime($value);
                break;
        } // switch()

        return $this;
    }
530965
public function seekto($pos)
    {
        $this->pos = ($this->strlen < $pos) ? $this->strlen : $pos;

        return $this->pos;
    }
167122
public function setByPosition($pos, $value)
    {
        switch ($pos) {
            case 0:
                $this->setId($value);
                break;
            case 1:
                $this->setDealerId($value);
                break;
            case 2:
                $this->setIsDefault($value);
                break;
            case 3:
                $this->setCreatedAt($value);
                break;
            case 4:
                $this->setUpdatedAt($value);
                break;
            case 5:
                $this->setVersion($value);
                break;
            case 6:
                $this->setVersionCreatedAt($value);
                break;
            case 7:
                $this->setVersionCreatedBy($value);
                break;
            case 8:
                $this->setDealerIdVersion($value);
                break;
            case 9:
                if (!is_array($value)) {
                    $v = trim(substr($value, 2, -2));
                    $value = $v ? explode(' | ', $v) : array();
                }
                $this->setDealerContactInfoIds($value);
                break;
            case 10:
                if (!is_array($value)) {
                    $v = trim(substr($value, 2, -2));
                    $value = $v ? explode(' | ', $v) : array();
                }
                $this->setDealerContactInfoVersions($value);
                break;
        } // switch()
    }
297206
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getTitle();
                break;
            case 2:
                return $this->getDescription();
                break;
            case 3:
                return $this->getUrl();
                break;
            case 4:
                return $this->getIsTutorial();
                break;
            case 5:
                return $this->getAthlete();
                break;
            case 6:
                return $this->getAthleteId();
                break;
            case 7:
                return $this->getUploaderId();
                break;
            case 8:
                return $this->getSkillId();
                break;
            case 9:
                return $this->getReferenceId();
                break;
            case 10:
                return $this->getPosterUrl();
                break;
            case 11:
                return $this->getProvider();
                break;
            case 12:
                return $this->getProviderId();
                break;
            case 13:
                return $this->getPlayerUrl();
                break;
            case 14:
                return $this->getWidth();
                break;
            case 15:
                return $this->getHeight();
                break;
            default:
                return null;
                break;
        } // switch()
    }
160371
private function _getXAdvancePos($pos)
	{
		// NB Not all fonts have all marks specified in GlyphClassMarks
		// If the current glyph is not a base (but a mark) then ignore this, and apply to the current position
		if (strpos($this->GlyphClassMarks, $this->OTLdata[$pos]['hex']) !== false) {
			return $pos;
		}

		while (isset($this->OTLdata[$pos + 1]['hex']) && strpos($this->GlyphClassMarks, $this->OTLdata[$pos + 1]['hex']) !== false) {
			$pos++;
		}
		return $pos;
	}
512930
public function getByPosition($pos)
    {
        switch ($pos) {
            case 0:
                return $this->getId();
                break;
            case 1:
                return $this->getUsername();
                break;
            case 2:
                return $this->getPassword();
                break;
            case 3:
                return $this->getFirstName();
                break;
            case 4:
                return $this->getLastName();
                break;
            case 5:
                return $this->getCreateDate();
                break;
            case 6:
                return $this->getUpdateDate();
                break;
            case 7:
                return $this->getStatus();
                break;
            default:
                return null;
                break;
        } // switch()
    }