%PDF- %PDF-
| Direktori : /www/varak.net/wiki.varak.net/vendor/wikimedia/purtle/src/ |
| Current File : /www/varak.net/wiki.varak.net/vendor/wikimedia/purtle/src/BNodeLabeler.php |
<?php
namespace Wikimedia\Purtle;
use InvalidArgumentException;
/**
* Helper class for generating labels for blank nodes.
*
* This serves as a holder for the bnode counter that can be shared between multiple RdfWriter
* instances, to avoid conflicting ids.
*
* @license GPL-2.0-or-later
* @author Daniel Kinzler
*/
class BNodeLabeler {
/**
* @var string
*/
private $prefix;
/**
* @var int
*/
private $counter;
/**
* @param string $prefix
* @param int $start
*
* @throws InvalidArgumentException
*/
public function __construct( $prefix = 'genid', $start = 1 ) {
if ( !is_string( $prefix ) ) {
throw new InvalidArgumentException( '$prefix must be a string' );
}
if ( !is_int( $start ) || $start < 1 ) {
throw new InvalidArgumentException( '$start must be an int >= 1' );
}
$this->prefix = $prefix;
$this->counter = $start;
}
/**
* @param string|null $label node label, will be generated if not given.
*
* @return string
*/
public function getLabel( $label = null ) {
if ( $label === null ) {
$label = $this->prefix . $this->counter;
$this->counter ++;
}
return $label;
}
}