public static function fromNative()
    {
        $args = \func_get_args();

        if (\count($args) != 8) {
            throw new \BadMethodCallException('You must provide exactly 8 arguments: 1) addressee name, 2) street name, 3) street number, 4) district, 5) city, 6) region, 7) postal code, 8) country code.');
        }

        $name       = new StringLiteral($args[0]);
        $street     = new Street(new StringLiteral($args[1]), new StringLiteral($args[2]));
        $district   = new StringLiteral($args[3]);
        $city       = new StringLiteral($args[4]);
        $region     = new StringLiteral($args[5]);
        $postalCode = new StringLiteral($args[6]);
        $country    = Country::fromNative($args[7]);

        return new self($name, $street, $district, $city, $region, $postalCode, $country);
    }