protected function getClass(BodyParameter $parameter, Context $context, $reference)
    {
        $resolvedSchema = null;
        $jsonReference  = null;
        $array          = false;
        $schema         = $parameter->getSchema();

        if ($schema instanceof Reference) {
            list($jsonReference, $resolvedSchema) = $this->resolveSchema($schema, Schema::class);
        }

        if ($schema instanceof Schema && $schema->getType() == "array" && $schema->getItems() instanceof Reference) {
            list($jsonReference, $resolvedSchema) = $this->resolveSchema($schema->getItems(), Schema::class);
            $array          = true;
        }

        if ($resolvedSchema === null) {
            if ($context->getRegistry()->hasClass($reference)) {
                return ["\\" . $context->getRegistry()->getSchema($reference)->getNamespace() . "\\Model\\" . $context->getRegistry()->getClass($reference)->getName(), false];
            }

            return [$schema->getType(), null];
        }

        $class = $context->getRegistry()->getClass($jsonReference);

        // Happens when reference resolve to a none object
        if ($class === null) {
            return [$schema->getType(), null];
        }

        $class = "\\" . $context->getRegistry()->getSchema($jsonReference)->getNamespace() . "\\Model\\" . $class->getName();

        if ($array) {
            $class .= "[]";
        }

        return [$class, $array];
    }
protected function getClass(BodyParameter $parameter, Context $context, $reference)
    {
        $resolvedSchema = null;
        $jsonReference  = null;
        $array          = false;
        $schema         = $parameter->getSchema();

        if ($schema instanceof Reference) {
            list($jsonReference, $resolvedSchema) = $this->resolveSchema($schema, Schema::class);
        }

        if ($schema instanceof Schema && $schema->getType() == "array" && $schema->getItems() instanceof Reference) {
            list($jsonReference, $resolvedSchema) = $this->resolveSchema($schema->getItems(), Schema::class);
            $array          = true;
        }

        if ($resolvedSchema === null) {
            if ($context->getRegistry()->hasClass($reference)) {
                return ["\\" . $context->getRegistry()->getSchema($reference)->getNamespace() . "\\Model\\" . $context->getRegistry()->getClass($reference)->getName(), false];
            }

            return [$schema->getType(), null];
        }

        $class = $context->getRegistry()->getClass($jsonReference);

        // Happens when reference resolve to a none object
        if ($class === null) {
            return [$schema->getType(), null];
        }

        $class = "\\" . $context->getRegistry()->getSchema($jsonReference)->getNamespace() . "\\Model\\" . $class->getName();

        if ($array) {
            $class .= "[]";
        }

        return [$class, $array];
    }
@param BodyParameter $parameter
@param Context $context

@return array