public function resolve($value, &$resolutionType)
	{
		if (is_array($value)) {
			$value = $value[0];
		}
		if (is_string($value)) {
			if (strpos($value, '|') !== false) {
				$resolutionType = ResolveAdaptorInterface::TYPE_PIPELINE;
				return $this->resolveMiddlewarePipeline($value);
			} elseif (strpos($value, '::') !== false) {
				$resolutionType = ResolveAdaptorInterface::TYPE_STATIC;
				return $this->resolveStatic($value);
			} elseif (strpos($value, '->') !== false) {
				$resolutionType = ResolveAdaptorInterface::TYPE_INSTANCE;
				return $this->resolveInstanceMethod($value);
			} else {
				$resolutionType = ResolveAdaptorInterface::TYPE_INVOKE;
				return $this->resolveInvokable($value);
			}
		} else {
			$resolutionType = ResolveAdaptorInterface::TYPE_ORIGINAL;
			return $value;
		}
	}