public function getSerializationType()
    {
        switch ($this->association) {
            case self::ASSOCIATION_TYPE_EMBED_ONE:
            case self::ASSOCIATION_TYPE_EMBED_MANY:
                return TypeFactory::getType(Type::MAP);
            case self::ASSOCIATION_TYPE_REFERENCE_ONE:
            case self::ASSOCIATION_TYPE_REFERENCE_MANY:
                return $this->getReferenceSerializationType();
        }

        throw new \BadMethodCallException;
    }