private function buildUrlMapping($class, $properties, $url)
{
$pattern = Prado::createComponent($class, $this);
if (!$pattern instanceof TUrlMappingPattern) {
throw new TConfigurationException('urlmapping_urlmappingpattern_required');
}
foreach ($properties as $name => $value) {
$pattern->setSubproperty($name, $value);
}
if ($url instanceof TXmlElement) {
$text = $url->getValue();
if ($text) {
$text = preg_replace('/(\\s+)/S', '', $text);
if (($regExp = $pattern->getRegularExpression()) !== '') {
trigger_error(sPrintF('%s.RegularExpression property value "%s" for ServiceID="%s" and ServiceParameter="%s" was replaced by node value "%s"', get_class($pattern), $regExp, $pattern->getServiceID(), $pattern->getServiceParameter(), $text), E_USER_NOTICE);
}
$pattern->setRegularExpression($text);
}
}
$this->_patterns[] = $pattern;
$pattern->init($url);
$key = $pattern->getServiceID() . ':' . $pattern->getServiceParameter();
$this->_constructRules[$key][] = $pattern;
}