mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
initial commit
This commit is contained in:
115
lib/symfony/vendor/phing/system/util/Register.php
vendored
Executable file
115
lib/symfony/vendor/phing/system/util/Register.php
vendored
Executable file
@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* Static class to handle a slot-listening system.
|
||||
*
|
||||
* Unlike the slots/signals Qt model, this class manages something that is
|
||||
* more like a simple hashtable, where each slot has only one value. For that
|
||||
* reason "Registers" makes more sense, the reference being to CPU registers.
|
||||
*
|
||||
* This could be used for anything, but it's been built for a pretty specific phing
|
||||
* need, and that is to allow access to dynamic values that are set by logic
|
||||
* that is not represented in a build file. For exampe, we need a system for getting
|
||||
* the current resource (file) that is being processed by a filterchain in a fileset.
|
||||
*
|
||||
* Each slot corresponds to only one read-only, dynamic-value RegisterSlot object. In
|
||||
* a build.xml register slots are expressed using a syntax similar to variables:
|
||||
*
|
||||
* <replaceregexp>
|
||||
* <regexp pattern="\n" replace="%{task.current_file}"/>
|
||||
* </replaceregexp>
|
||||
*
|
||||
* The task/type must provide a supporting setter for the attribute:
|
||||
*
|
||||
* <code>
|
||||
* function setListeningReplace(RegisterSlot $slot) {
|
||||
* $this->replace = $slot;
|
||||
* }
|
||||
*
|
||||
* // in main()
|
||||
* if ($this->replace instanceof RegisterSlot) {
|
||||
* $this->regexp->setReplace($this->replace->getValue());
|
||||
* } else {
|
||||
* $this->regexp->setReplace($this->replace);
|
||||
* }
|
||||
* </code>
|
||||
*
|
||||
* @author Hans Lellelid <hans@xmpl.org>
|
||||
* @version $Revision: 1.3 $
|
||||
* @package phing.system.util
|
||||
*/
|
||||
class Register {
|
||||
|
||||
/** Slots that have been registered */
|
||||
private static $slots = array();
|
||||
|
||||
/**
|
||||
* Returns RegisterSlot for specified key.
|
||||
*
|
||||
* If not slot exists a new one is created for key.
|
||||
*
|
||||
* @param string $key
|
||||
* @return RegisterSlot
|
||||
*/
|
||||
public static function getSlot($key) {
|
||||
if (!isset(self::$slots[$key])) {
|
||||
self::$slots[$key] = new RegisterSlot($key);
|
||||
}
|
||||
return self::$slots[$key];
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Represents a slot in the register.
|
||||
*/
|
||||
class RegisterSlot {
|
||||
|
||||
/** The name of this slot. */
|
||||
private $key;
|
||||
|
||||
/** The value for this slot. */
|
||||
private $value;
|
||||
|
||||
/**
|
||||
* Constructs a new RegisterSlot, setting the key to passed param.
|
||||
* @param string $key
|
||||
*/
|
||||
public function __construct($key) {
|
||||
$this->key = (string) $key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the key / name for this slot.
|
||||
* @param string $k
|
||||
*/
|
||||
public function setKey($k) {
|
||||
$this->key = (string) $k;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the key / name for this slot.
|
||||
* @return string
|
||||
*/
|
||||
public function getKey() {
|
||||
return $this->key;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value for this slot.
|
||||
* @param mixed
|
||||
*/
|
||||
public function setValue($v) {
|
||||
$this->value = $v;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value at this slot.
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue() {
|
||||
return $this->value;
|
||||
}
|
||||
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user