registry['Summit'] = SummitSerializer::class; $this->registry['SummitWIFIConnection'] = SummitWIFIConnectionSerializer::class; $this->registry['SummitType'] = SummitTypeSerializer::class; $this->registry['SummitEventType'] = SummitEventTypeSerializer::class; $this->registry['PresentationType'] = PresentationTypeSerializer::class; $this->registry['SummitTicketType'] = SummitTicketTypeSerializer::class; $this->registry['PresentationCategory'] = PresentationCategorySerializer::class; $this->registry['PresentationCategoryGroup'] = PresentationCategoryGroupSerializer::class; $this->registry['PrivatePresentationCategoryGroup'] = PrivatePresentationCategoryGroupSerializer::class; $this->registry['Tag'] = TagSerializer::class; $this->registry['SummitEvent'] = SummitEventSerializer::class; $this->registry['SummitGroupEvent'] = SummitGroupEventSerializer::class; $this->registry['SummitEventMetricsSnapshot'] = SummitEventMetricsSnapshotSerializer::class; $this->registry['Presentation'] = PresentationSerializer::class; $this->registry['PresentationVideo'] = PresentationVideoSerializer::class; $this->registry['PresentationSlide'] = PresentationSlideSerializer::class; $this->registry['PresentationLink'] = PresentationLinkSerializer::class; $this->registry['Company'] = CompanySerializer::class; $this->registry['PresentationSpeaker'] = [ self::SerializerType_Public => PresentationSpeakerSerializer::class, self::SerializerType_Private => AdminPresentationSpeakerSerializer::class ]; // RSVP $this->registry['RSVP'] = RSVPSerializer::class; $this->registry['RSVPTemplate'] = RSVPTemplateSerializer::class; $this->registry['RSVPQuestionValueTemplate'] = RSVPQuestionValueTemplateSerializer::class; $this->registry['RSVPSingleValueTemplateQuestion'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPTextBoxQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPTextAreaQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPMemberEmailQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPMemberFirstNameQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPMemberLastNameQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPMemberLastNameQuestionTemplate'] = RSVPSingleValueTemplateQuestionSerializer::class; $this->registry['RSVPCheckBoxListQuestionTemplate'] = RSVPMultiValueQuestionTemplateSerializer::class; $this->registry['RSVPRadioButtonListQuestionTemplate'] = RSVPMultiValueQuestionTemplateSerializer::class; $this->registry['SpeakerExpertise'] = SpeakerExpertiseSerializer::class; $this->registry['SpeakerLanguage'] = SpeakerLanguageSerializer::class; $this->registry['SpeakerTravelPreference'] = SpeakerTravelPreferenceSerializer::class; $this->registry['SpeakerPresentationLink'] = SpeakerPresentationLinkSerializer::class; $this->registry['SpeakerActiveInvolvement'] = SpeakerActiveInvolvementSerializer::class; $this->registry['SpeakerOrganizationalRole'] = SpeakerOrganizationalRoleSerializer::class; $this->registry['SummitEventFeedback'] = SummitEventFeedbackSerializer::class; $this->registry['SummitAttendee'] = SummitAttendeeSerializer::class; $this->registry['SummitAttendeeTicket'] = SummitAttendeeTicketSerializer::class; $this->registry['SummitMemberSchedule'] = SummitMemberScheduleSerializer::class; $this->registry['SummitMemberFavorite'] = SummitMemberFavoriteSerializer::class; $this->registry['SummitEntityEvent'] = SummitEntityEventSerializer::class; $this->registry['SummitEventWithFile'] = SummitEventWithFileSerializer::class; $this->registry['SummitScheduleEmptySpot'] = SummitScheduleEmptySpotSerializer::class; // promo codes $this->registry['SummitRegistrationPromoCode'] = SummitRegistrationPromoCodeSerializer::class; $this->registry['MemberSummitRegistrationPromoCode'] = MemberSummitRegistrationPromoCodeSerializer::class; $this->registry['SpeakerSummitRegistrationPromoCode'] = SpeakerSummitRegistrationPromoCodeSerializer::class; $this->registry['SponsorSummitRegistrationPromoCode'] = SponsorSummitRegistrationPromoCodeSerializer::class; $this->registry['PresentationSpeakerSummitAssistanceConfirmationRequest'] = PresentationSpeakerSummitAssistanceConfirmationRequestSerializer::class; // locations $this->registry['SummitVenue'] = SummitVenueSerializer::class; $this->registry['SummitVenueRoom'] = SummitVenueRoomSerializer::class; $this->registry['SummitVenueFloor'] = SummitVenueFloorSerializer::class; $this->registry['SummitExternalLocation'] = SummitExternalLocationSerializer::class; $this->registry['SummitHotel'] = SummitHotelSerializer::class; $this->registry['SummitAirport'] = SummitAirportSerializer::class; $this->registry['SummitLocationImage'] = SummitLocationImageSerializer::class; $this->registry['SummitLocationBanner'] = SummitLocationBannerSerializer::class; $this->registry['ScheduledSummitLocationBanner'] = ScheduledSummitLocationBannerSerializer::class; // member $this->registry['Member'] = [ self::SerializerType_Public => PublicMemberSerializer::class, self::SerializerType_Private => OwnMemberSerializer::class ]; $this->registry['Group'] = GroupSerializer::class; $this->registry['Affiliation'] = AffiliationSerializer::class; $this->registry['Organization'] = OrganizationSerializer::class; // push notification $this->registry['SummitPushNotification'] = SummitPushNotificationSerializer::class; // teams $this->registry['ChatTeam'] = ChatTeamSerializer::class; $this->registry['ChatTeamMember'] = ChatTeamMemberSerializer::class; $this->registry['ChatTeamInvitation'] = ChatTeamInvitationSerializer::class; $this->registry['ChatTeamPushNotificationMessage'] = ChatTeamPushNotificationMessageSerializer::class; // marketplace $this->registry['Appliance'] = ApplianceSerializer::class; $this->registry["Distribution"] = DistributionSerializer::class; $this->registry['MarketPlaceReview'] = MarketPlaceReviewSerializer::class; $this->registry['OpenStackImplementationApiCoverage'] = OpenStackImplementationApiCoverageSerializer::class; $this->registry['GuestOSType'] = GuestOSTypeSerializer::class; $this->registry['HyperVisorType'] = HyperVisorTypeSerializer::class; $this->registry['Region'] = RegionSerializer::class; $this->registry['RegionalSupport'] = RegionalSupportSerializer::class; $this->registry['SupportChannelType'] = SupportChannelTypeSerializer::class; $this->registry['Office'] = OfficeSerializer::class; $this->registry['Consultant'] = ConsultantSerializer::class; $this->registry['ConsultantClient'] = ConsultantClientSerializer::class; $this->registry['SpokenLanguage'] = SpokenLanguageSerializer::class; $this->registry['ConfigurationManagementType'] = ConfigurationManagementTypeSerializer::class; $this->registry['ServiceOfferedType'] = ServiceOfferedTypeSerializer::class; $this->registry['ConsultantServiceOfferedType'] = ConsultantServiceOfferedTypeSerializer::class; $this->registry['DataCenterLocation'] = DataCenterLocationSerializer::class; $this->registry['DataCenterRegion'] = DataCenterRegionSerializer::class; $this->registry['PricingSchemaType'] = PricingSchemaTypeSerializer::class; $this->registry['PrivateCloudService'] = PrivateCloudServiceSerializer::class; $this->registry['PublicCloudService'] = PublicCloudServiceSerializer::class; $this->registry['RemoteCloudService'] = RemoteCloudServiceSerializer::class; $this->registry['CloudServiceOffered'] = CloudServiceOfferedSerializer::class; // software $this->registry['OpenStackComponent'] = OpenStackComponentSerializer::class; $this->registry['OpenStackRelease'] = OpenStackReleaseSerializer::class; // ccla $this->registry['Team'] = TeamSerializer::class; } /** * @param object $object * @param string $type * @return IModelSerializer */ public function getSerializer($object, $type = self::SerializerType_Public){ if(is_null($object)) return null; $reflect = new \ReflectionClass($object); $class = $reflect->getShortName(); if(!isset($this->registry[$class])) throw new \InvalidArgumentException('Serializer not found for '.$class); $serializer_class = $this->registry[$class]; if(is_array($serializer_class)){ if(!isset($serializer_class[$type])) throw new \InvalidArgumentException(sprintf('Serializer not found for %s , type %s', $class, $type)); $serializer_class = $serializer_class[$type]; } return new $serializer_class($object); } }