public function adapter($name, $scope = null, $version = null)
{
if (is_object($name)) {
$object = $name;
if ($object instanceof FarmRoleScalingMetric) {
$name = ScalingRuleAdapter::$ruleTypeMap[$object->metric->alias];
} else {
$name = $this->getBareId($object, 'ruleType');
if (!$name) {
throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_STRUCTURE, 'Missed property ruleType');
}
if (!in_array($name, ScalingRuleAdapter::$ruleTypeMap)) {
throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_VALUE, 'Unexpected ruleType value');
}
}
$name = static::$scalingRuleNamespace . "\\" . $name;
}
return parent::adapter($name, $scope, $version);
}