// Code generated by astool. DO NOT EDIT.

package propertysubject

import (
	vocab "code.superseriousbusiness.org/activity/streams/vocab"
	"fmt"
	"net/url"
)

// ActivityStreamsSubjectProperty is the functional property "subject". It is
// permitted to be one of multiple value types. At most, one type of value can
// be present, or none at all. Setting a value will clear the other types of
// values so that only one of the 'Is' methods will return true. It is
// possible to clear all values, so that this property is empty.
type ActivityStreamsSubjectProperty struct {
	activitystreamsLinkMember                  vocab.ActivityStreamsLink
	activitystreamsObjectMember                vocab.ActivityStreamsObject
	activitystreamsAcceptMember                vocab.ActivityStreamsAccept
	activitystreamsActivityMember              vocab.ActivityStreamsActivity
	activitystreamsAddMember                   vocab.ActivityStreamsAdd
	funkwhaleAlbumMember                       vocab.FunkwhaleAlbum
	activitystreamsAnnounceMember              vocab.ActivityStreamsAnnounce
	gotosocialAnnounceApprovalMember           vocab.GoToSocialAnnounceApproval
	gotosocialAnnounceAuthorizationMember      vocab.GoToSocialAnnounceAuthorization
	gotosocialAnnounceRequestMember            vocab.GoToSocialAnnounceRequest
	activitystreamsApplicationMember           vocab.ActivityStreamsApplication
	activitystreamsArriveMember                vocab.ActivityStreamsArrive
	activitystreamsArticleMember               vocab.ActivityStreamsArticle
	funkwhaleArtistMember                      vocab.FunkwhaleArtist
	activitystreamsAudioMember                 vocab.ActivityStreamsAudio
	activitystreamsBlockMember                 vocab.ActivityStreamsBlock
	activitystreamsCollectionMember            vocab.ActivityStreamsCollection
	activitystreamsCollectionPageMember        vocab.ActivityStreamsCollectionPage
	activitystreamsCreateMember                vocab.ActivityStreamsCreate
	activitystreamsDeleteMember                vocab.ActivityStreamsDelete
	activitystreamsDislikeMember               vocab.ActivityStreamsDislike
	activitystreamsDocumentMember              vocab.ActivityStreamsDocument
	tootEmojiMember                            vocab.TootEmoji
	litepubEmojiReactMember                    vocab.LitePubEmojiReact
	activitystreamsEventMember                 vocab.ActivityStreamsEvent
	activitystreamsFlagMember                  vocab.ActivityStreamsFlag
	activitystreamsFollowMember                vocab.ActivityStreamsFollow
	activitystreamsGroupMember                 vocab.ActivityStreamsGroup
	tootHashtagMember                          vocab.TootHashtag
	tootIdentityProofMember                    vocab.TootIdentityProof
	activitystreamsIgnoreMember                vocab.ActivityStreamsIgnore
	activitystreamsImageMember                 vocab.ActivityStreamsImage
	activitystreamsIntransitiveActivityMember  vocab.ActivityStreamsIntransitiveActivity
	activitystreamsInviteMember                vocab.ActivityStreamsInvite
	activitystreamsJoinMember                  vocab.ActivityStreamsJoin
	activitystreamsLeaveMember                 vocab.ActivityStreamsLeave
	funkwhaleLibraryMember                     vocab.FunkwhaleLibrary
	activitystreamsLikeMember                  vocab.ActivityStreamsLike
	gotosocialLikeApprovalMember               vocab.GoToSocialLikeApproval
	gotosocialLikeAuthorizationMember          vocab.GoToSocialLikeAuthorization
	gotosocialLikeRequestMember                vocab.GoToSocialLikeRequest
	activitystreamsListenMember                vocab.ActivityStreamsListen
	activitystreamsMentionMember               vocab.ActivityStreamsMention
	activitystreamsMoveMember                  vocab.ActivityStreamsMove
	activitystreamsNoteMember                  vocab.ActivityStreamsNote
	activitystreamsOfferMember                 vocab.ActivityStreamsOffer
	activitystreamsOrderedCollectionMember     vocab.ActivityStreamsOrderedCollection
	activitystreamsOrderedCollectionPageMember vocab.ActivityStreamsOrderedCollectionPage
	activitystreamsOrganizationMember          vocab.ActivityStreamsOrganization
	activitystreamsPageMember                  vocab.ActivityStreamsPage
	activitystreamsPersonMember                vocab.ActivityStreamsPerson
	activitystreamsPlaceMember                 vocab.ActivityStreamsPlace
	activitystreamsProfileMember               vocab.ActivityStreamsProfile
	schemaPropertyValueMember                  vocab.SchemaPropertyValue
	activitystreamsQuestionMember              vocab.ActivityStreamsQuestion
	gotosocialQuoteAuthorizationMember         vocab.GoToSocialQuoteAuthorization
	gotosocialQuoteRequestMember               vocab.GoToSocialQuoteRequest
	activitystreamsReadMember                  vocab.ActivityStreamsRead
	activitystreamsRejectMember                vocab.ActivityStreamsReject
	activitystreamsRelationshipMember          vocab.ActivityStreamsRelationship
	activitystreamsRemoveMember                vocab.ActivityStreamsRemove
	gotosocialReplyApprovalMember              vocab.GoToSocialReplyApproval
	gotosocialReplyAuthorizationMember         vocab.GoToSocialReplyAuthorization
	gotosocialReplyRequestMember               vocab.GoToSocialReplyRequest
	activitystreamsServiceMember               vocab.ActivityStreamsService
	activitystreamsTentativeAcceptMember       vocab.ActivityStreamsTentativeAccept
	activitystreamsTentativeRejectMember       vocab.ActivityStreamsTentativeReject
	activitystreamsTombstoneMember             vocab.ActivityStreamsTombstone
	funkwhaleTrackMember                       vocab.FunkwhaleTrack
	activitystreamsTravelMember                vocab.ActivityStreamsTravel
	activitystreamsUndoMember                  vocab.ActivityStreamsUndo
	activitystreamsUpdateMember                vocab.ActivityStreamsUpdate
	activitystreamsVideoMember                 vocab.ActivityStreamsVideo
	activitystreamsViewMember                  vocab.ActivityStreamsView
	unknown                                    interface{}
	iri                                        *url.URL
	alias                                      string
}

// DeserializeSubjectProperty creates a "subject" property from an interface
// representation that has been unmarshalled from a text or binary format.
func DeserializeSubjectProperty(m map[string]interface{}, aliasMap map[string]string) (*ActivityStreamsSubjectProperty, error) {
	alias := ""
	if a, ok := aliasMap["https://www.w3.org/ns/activitystreams"]; ok {
		alias = a
	}
	propName := "subject"
	if len(alias) > 0 {
		// Use alias both to find the property, and set within the property.
		propName = fmt.Sprintf("%s:%s", alias, "subject")
	}
	i, ok := m[propName]

	if ok {
		if s, ok := i.(string); ok {
			u, err := url.Parse(s)
			// If error exists, don't error out -- skip this and treat as unknown string ([]byte) at worst
			// Also, if no scheme exists, don't treat it as a URL -- net/url is greedy
			if err == nil && len(u.Scheme) > 0 {
				this := &ActivityStreamsSubjectProperty{
					alias: alias,
					iri:   u,
				}
				return this, nil
			}
		}
		if m, ok := i.(map[string]interface{}); ok {
			if v, err := mgr.DeserializeLinkActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsLinkMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeObjectActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsObjectMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAcceptActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsAcceptMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeActivityActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsActivityMember: v,
					alias:                         alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAddActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsAddMember: v,
					alias:                    alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAlbumFunkwhale()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                alias,
					funkwhaleAlbumMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAnnounceActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsAnnounceMember: v,
					alias:                         alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAnnounceApprovalGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                            alias,
					gotosocialAnnounceApprovalMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAnnounceAuthorizationGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                                 alias,
					gotosocialAnnounceAuthorizationMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAnnounceRequestGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                           alias,
					gotosocialAnnounceRequestMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeApplicationActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsApplicationMember: v,
					alias:                            alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeArriveActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsArriveMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeArticleActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsArticleMember: v,
					alias:                        alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeArtistFunkwhale()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                 alias,
					funkwhaleArtistMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeAudioActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsAudioMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeBlockActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsBlockMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeCollectionActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsCollectionMember: v,
					alias:                           alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeCollectionPageActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsCollectionPageMember: v,
					alias:                               alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeCreateActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsCreateMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeDeleteActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsDeleteMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeDislikeActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsDislikeMember: v,
					alias:                        alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeDocumentActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsDocumentMember: v,
					alias:                         alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeEmojiToot()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:           alias,
					tootEmojiMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeEmojiReactLitePub()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                   alias,
					litepubEmojiReactMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeEventActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsEventMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeFlagActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsFlagMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeFollowActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsFollowMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeGroupActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsGroupMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeHashtagToot()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:             alias,
					tootHashtagMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeIdentityProofToot()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                   alias,
					tootIdentityProofMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeIgnoreActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsIgnoreMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeImageActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsImageMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeIntransitiveActivityActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsIntransitiveActivityMember: v,
					alias: alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeInviteActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsInviteMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeJoinActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsJoinMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLeaveActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsLeaveMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLibraryFunkwhale()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                  alias,
					funkwhaleLibraryMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLikeActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsLikeMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLikeApprovalGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                        alias,
					gotosocialLikeApprovalMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLikeAuthorizationGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                             alias,
					gotosocialLikeAuthorizationMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeLikeRequestGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                       alias,
					gotosocialLikeRequestMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeListenActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsListenMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeMentionActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsMentionMember: v,
					alias:                        alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeMoveActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsMoveMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeNoteActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsNoteMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeOfferActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsOfferMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeOrderedCollectionActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsOrderedCollectionMember: v,
					alias:                                  alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeOrderedCollectionPageActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsOrderedCollectionPageMember: v,
					alias: alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeOrganizationActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsOrganizationMember: v,
					alias:                             alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializePageActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsPageMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializePersonActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsPersonMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializePlaceActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsPlaceMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeProfileActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsProfileMember: v,
					alias:                        alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializePropertyValueSchema()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                     alias,
					schemaPropertyValueMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeQuestionActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsQuestionMember: v,
					alias:                         alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeQuoteAuthorizationGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                              alias,
					gotosocialQuoteAuthorizationMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeQuoteRequestGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                        alias,
					gotosocialQuoteRequestMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeReadActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsReadMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeRejectActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsRejectMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeRelationshipActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsRelationshipMember: v,
					alias:                             alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeRemoveActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsRemoveMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeReplyApprovalGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                         alias,
					gotosocialReplyApprovalMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeReplyAuthorizationGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                              alias,
					gotosocialReplyAuthorizationMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeReplyRequestGoToSocial()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                        alias,
					gotosocialReplyRequestMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeServiceActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsServiceMember: v,
					alias:                        alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeTentativeAcceptActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsTentativeAcceptMember: v,
					alias:                                alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeTentativeRejectActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsTentativeRejectMember: v,
					alias:                                alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeTombstoneActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsTombstoneMember: v,
					alias:                          alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeTrackFunkwhale()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					alias:                alias,
					funkwhaleTrackMember: v,
				}
				return this, nil
			} else if v, err := mgr.DeserializeTravelActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsTravelMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeUndoActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsUndoMember: v,
					alias:                     alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeUpdateActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsUpdateMember: v,
					alias:                       alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeVideoActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsVideoMember: v,
					alias:                      alias,
				}
				return this, nil
			} else if v, err := mgr.DeserializeViewActivityStreams()(m, aliasMap); err == nil {
				this := &ActivityStreamsSubjectProperty{
					activitystreamsViewMember: v,
					alias:                     alias,
				}
				return this, nil
			}
		}
		this := &ActivityStreamsSubjectProperty{
			alias:   alias,
			unknown: i,
		}
		return this, nil
	}
	return nil, nil
}

// NewActivityStreamsSubjectProperty creates a new subject property.
func NewActivityStreamsSubjectProperty() *ActivityStreamsSubjectProperty {
	return &ActivityStreamsSubjectProperty{alias: ""}
}

// Clear ensures no value of this property is set. Calling HasAny or any of the
// 'Is' methods afterwards will return false.
func (this *ActivityStreamsSubjectProperty) Clear() {
	this.activitystreamsLinkMember = nil
	this.activitystreamsObjectMember = nil
	this.activitystreamsAcceptMember = nil
	this.activitystreamsActivityMember = nil
	this.activitystreamsAddMember = nil
	this.funkwhaleAlbumMember = nil
	this.activitystreamsAnnounceMember = nil
	this.gotosocialAnnounceApprovalMember = nil
	this.gotosocialAnnounceAuthorizationMember = nil
	this.gotosocialAnnounceRequestMember = nil
	this.activitystreamsApplicationMember = nil
	this.activitystreamsArriveMember = nil
	this.activitystreamsArticleMember = nil
	this.funkwhaleArtistMember = nil
	this.activitystreamsAudioMember = nil
	this.activitystreamsBlockMember = nil
	this.activitystreamsCollectionMember = nil
	this.activitystreamsCollectionPageMember = nil
	this.activitystreamsCreateMember = nil
	this.activitystreamsDeleteMember = nil
	this.activitystreamsDislikeMember = nil
	this.activitystreamsDocumentMember = nil
	this.tootEmojiMember = nil
	this.litepubEmojiReactMember = nil
	this.activitystreamsEventMember = nil
	this.activitystreamsFlagMember = nil
	this.activitystreamsFollowMember = nil
	this.activitystreamsGroupMember = nil
	this.tootHashtagMember = nil
	this.tootIdentityProofMember = nil
	this.activitystreamsIgnoreMember = nil
	this.activitystreamsImageMember = nil
	this.activitystreamsIntransitiveActivityMember = nil
	this.activitystreamsInviteMember = nil
	this.activitystreamsJoinMember = nil
	this.activitystreamsLeaveMember = nil
	this.funkwhaleLibraryMember = nil
	this.activitystreamsLikeMember = nil
	this.gotosocialLikeApprovalMember = nil
	this.gotosocialLikeAuthorizationMember = nil
	this.gotosocialLikeRequestMember = nil
	this.activitystreamsListenMember = nil
	this.activitystreamsMentionMember = nil
	this.activitystreamsMoveMember = nil
	this.activitystreamsNoteMember = nil
	this.activitystreamsOfferMember = nil
	this.activitystreamsOrderedCollectionMember = nil
	this.activitystreamsOrderedCollectionPageMember = nil
	this.activitystreamsOrganizationMember = nil
	this.activitystreamsPageMember = nil
	this.activitystreamsPersonMember = nil
	this.activitystreamsPlaceMember = nil
	this.activitystreamsProfileMember = nil
	this.schemaPropertyValueMember = nil
	this.activitystreamsQuestionMember = nil
	this.gotosocialQuoteAuthorizationMember = nil
	this.gotosocialQuoteRequestMember = nil
	this.activitystreamsReadMember = nil
	this.activitystreamsRejectMember = nil
	this.activitystreamsRelationshipMember = nil
	this.activitystreamsRemoveMember = nil
	this.gotosocialReplyApprovalMember = nil
	this.gotosocialReplyAuthorizationMember = nil
	this.gotosocialReplyRequestMember = nil
	this.activitystreamsServiceMember = nil
	this.activitystreamsTentativeAcceptMember = nil
	this.activitystreamsTentativeRejectMember = nil
	this.activitystreamsTombstoneMember = nil
	this.funkwhaleTrackMember = nil
	this.activitystreamsTravelMember = nil
	this.activitystreamsUndoMember = nil
	this.activitystreamsUpdateMember = nil
	this.activitystreamsVideoMember = nil
	this.activitystreamsViewMember = nil
	this.unknown = nil
	this.iri = nil
}

// GetActivityStreamsAccept returns the value of this property. When
// IsActivityStreamsAccept returns false, GetActivityStreamsAccept will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsAccept() vocab.ActivityStreamsAccept {
	return this.activitystreamsAcceptMember
}

// GetActivityStreamsActivity returns the value of this property. When
// IsActivityStreamsActivity returns false, GetActivityStreamsActivity will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsActivity() vocab.ActivityStreamsActivity {
	return this.activitystreamsActivityMember
}

// GetActivityStreamsAdd returns the value of this property. When
// IsActivityStreamsAdd returns false, GetActivityStreamsAdd will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsAdd() vocab.ActivityStreamsAdd {
	return this.activitystreamsAddMember
}

// GetActivityStreamsAnnounce returns the value of this property. When
// IsActivityStreamsAnnounce returns false, GetActivityStreamsAnnounce will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsAnnounce() vocab.ActivityStreamsAnnounce {
	return this.activitystreamsAnnounceMember
}

// GetActivityStreamsApplication returns the value of this property. When
// IsActivityStreamsApplication returns false, GetActivityStreamsApplication
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsApplication() vocab.ActivityStreamsApplication {
	return this.activitystreamsApplicationMember
}

// GetActivityStreamsArrive returns the value of this property. When
// IsActivityStreamsArrive returns false, GetActivityStreamsArrive will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsArrive() vocab.ActivityStreamsArrive {
	return this.activitystreamsArriveMember
}

// GetActivityStreamsArticle returns the value of this property. When
// IsActivityStreamsArticle returns false, GetActivityStreamsArticle will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsArticle() vocab.ActivityStreamsArticle {
	return this.activitystreamsArticleMember
}

// GetActivityStreamsAudio returns the value of this property. When
// IsActivityStreamsAudio returns false, GetActivityStreamsAudio will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsAudio() vocab.ActivityStreamsAudio {
	return this.activitystreamsAudioMember
}

// GetActivityStreamsBlock returns the value of this property. When
// IsActivityStreamsBlock returns false, GetActivityStreamsBlock will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsBlock() vocab.ActivityStreamsBlock {
	return this.activitystreamsBlockMember
}

// GetActivityStreamsCollection returns the value of this property. When
// IsActivityStreamsCollection returns false, GetActivityStreamsCollection
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsCollection() vocab.ActivityStreamsCollection {
	return this.activitystreamsCollectionMember
}

// GetActivityStreamsCollectionPage returns the value of this property. When
// IsActivityStreamsCollectionPage returns false,
// GetActivityStreamsCollectionPage will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsCollectionPage() vocab.ActivityStreamsCollectionPage {
	return this.activitystreamsCollectionPageMember
}

// GetActivityStreamsCreate returns the value of this property. When
// IsActivityStreamsCreate returns false, GetActivityStreamsCreate will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsCreate() vocab.ActivityStreamsCreate {
	return this.activitystreamsCreateMember
}

// GetActivityStreamsDelete returns the value of this property. When
// IsActivityStreamsDelete returns false, GetActivityStreamsDelete will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsDelete() vocab.ActivityStreamsDelete {
	return this.activitystreamsDeleteMember
}

// GetActivityStreamsDislike returns the value of this property. When
// IsActivityStreamsDislike returns false, GetActivityStreamsDislike will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsDislike() vocab.ActivityStreamsDislike {
	return this.activitystreamsDislikeMember
}

// GetActivityStreamsDocument returns the value of this property. When
// IsActivityStreamsDocument returns false, GetActivityStreamsDocument will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsDocument() vocab.ActivityStreamsDocument {
	return this.activitystreamsDocumentMember
}

// GetActivityStreamsEvent returns the value of this property. When
// IsActivityStreamsEvent returns false, GetActivityStreamsEvent will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsEvent() vocab.ActivityStreamsEvent {
	return this.activitystreamsEventMember
}

// GetActivityStreamsFlag returns the value of this property. When
// IsActivityStreamsFlag returns false, GetActivityStreamsFlag will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsFlag() vocab.ActivityStreamsFlag {
	return this.activitystreamsFlagMember
}

// GetActivityStreamsFollow returns the value of this property. When
// IsActivityStreamsFollow returns false, GetActivityStreamsFollow will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsFollow() vocab.ActivityStreamsFollow {
	return this.activitystreamsFollowMember
}

// GetActivityStreamsGroup returns the value of this property. When
// IsActivityStreamsGroup returns false, GetActivityStreamsGroup will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsGroup() vocab.ActivityStreamsGroup {
	return this.activitystreamsGroupMember
}

// GetActivityStreamsIgnore returns the value of this property. When
// IsActivityStreamsIgnore returns false, GetActivityStreamsIgnore will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsIgnore() vocab.ActivityStreamsIgnore {
	return this.activitystreamsIgnoreMember
}

// GetActivityStreamsImage returns the value of this property. When
// IsActivityStreamsImage returns false, GetActivityStreamsImage will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsImage() vocab.ActivityStreamsImage {
	return this.activitystreamsImageMember
}

// GetActivityStreamsIntransitiveActivity returns the value of this property. When
// IsActivityStreamsIntransitiveActivity returns false,
// GetActivityStreamsIntransitiveActivity will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsIntransitiveActivity() vocab.ActivityStreamsIntransitiveActivity {
	return this.activitystreamsIntransitiveActivityMember
}

// GetActivityStreamsInvite returns the value of this property. When
// IsActivityStreamsInvite returns false, GetActivityStreamsInvite will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsInvite() vocab.ActivityStreamsInvite {
	return this.activitystreamsInviteMember
}

// GetActivityStreamsJoin returns the value of this property. When
// IsActivityStreamsJoin returns false, GetActivityStreamsJoin will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsJoin() vocab.ActivityStreamsJoin {
	return this.activitystreamsJoinMember
}

// GetActivityStreamsLeave returns the value of this property. When
// IsActivityStreamsLeave returns false, GetActivityStreamsLeave will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsLeave() vocab.ActivityStreamsLeave {
	return this.activitystreamsLeaveMember
}

// GetActivityStreamsLike returns the value of this property. When
// IsActivityStreamsLike returns false, GetActivityStreamsLike will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsLike() vocab.ActivityStreamsLike {
	return this.activitystreamsLikeMember
}

// GetActivityStreamsLink returns the value of this property. When
// IsActivityStreamsLink returns false, GetActivityStreamsLink will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsLink() vocab.ActivityStreamsLink {
	return this.activitystreamsLinkMember
}

// GetActivityStreamsListen returns the value of this property. When
// IsActivityStreamsListen returns false, GetActivityStreamsListen will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsListen() vocab.ActivityStreamsListen {
	return this.activitystreamsListenMember
}

// GetActivityStreamsMention returns the value of this property. When
// IsActivityStreamsMention returns false, GetActivityStreamsMention will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsMention() vocab.ActivityStreamsMention {
	return this.activitystreamsMentionMember
}

// GetActivityStreamsMove returns the value of this property. When
// IsActivityStreamsMove returns false, GetActivityStreamsMove will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsMove() vocab.ActivityStreamsMove {
	return this.activitystreamsMoveMember
}

// GetActivityStreamsNote returns the value of this property. When
// IsActivityStreamsNote returns false, GetActivityStreamsNote will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsNote() vocab.ActivityStreamsNote {
	return this.activitystreamsNoteMember
}

// GetActivityStreamsObject returns the value of this property. When
// IsActivityStreamsObject returns false, GetActivityStreamsObject will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsObject() vocab.ActivityStreamsObject {
	return this.activitystreamsObjectMember
}

// GetActivityStreamsOffer returns the value of this property. When
// IsActivityStreamsOffer returns false, GetActivityStreamsOffer will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsOffer() vocab.ActivityStreamsOffer {
	return this.activitystreamsOfferMember
}

// GetActivityStreamsOrderedCollection returns the value of this property. When
// IsActivityStreamsOrderedCollection returns false,
// GetActivityStreamsOrderedCollection will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsOrderedCollection() vocab.ActivityStreamsOrderedCollection {
	return this.activitystreamsOrderedCollectionMember
}

// GetActivityStreamsOrderedCollectionPage returns the value of this property.
// When IsActivityStreamsOrderedCollectionPage returns false,
// GetActivityStreamsOrderedCollectionPage will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsOrderedCollectionPage() vocab.ActivityStreamsOrderedCollectionPage {
	return this.activitystreamsOrderedCollectionPageMember
}

// GetActivityStreamsOrganization returns the value of this property. When
// IsActivityStreamsOrganization returns false, GetActivityStreamsOrganization
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsOrganization() vocab.ActivityStreamsOrganization {
	return this.activitystreamsOrganizationMember
}

// GetActivityStreamsPage returns the value of this property. When
// IsActivityStreamsPage returns false, GetActivityStreamsPage will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsPage() vocab.ActivityStreamsPage {
	return this.activitystreamsPageMember
}

// GetActivityStreamsPerson returns the value of this property. When
// IsActivityStreamsPerson returns false, GetActivityStreamsPerson will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsPerson() vocab.ActivityStreamsPerson {
	return this.activitystreamsPersonMember
}

// GetActivityStreamsPlace returns the value of this property. When
// IsActivityStreamsPlace returns false, GetActivityStreamsPlace will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsPlace() vocab.ActivityStreamsPlace {
	return this.activitystreamsPlaceMember
}

// GetActivityStreamsProfile returns the value of this property. When
// IsActivityStreamsProfile returns false, GetActivityStreamsProfile will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsProfile() vocab.ActivityStreamsProfile {
	return this.activitystreamsProfileMember
}

// GetActivityStreamsQuestion returns the value of this property. When
// IsActivityStreamsQuestion returns false, GetActivityStreamsQuestion will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsQuestion() vocab.ActivityStreamsQuestion {
	return this.activitystreamsQuestionMember
}

// GetActivityStreamsRead returns the value of this property. When
// IsActivityStreamsRead returns false, GetActivityStreamsRead will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsRead() vocab.ActivityStreamsRead {
	return this.activitystreamsReadMember
}

// GetActivityStreamsReject returns the value of this property. When
// IsActivityStreamsReject returns false, GetActivityStreamsReject will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsReject() vocab.ActivityStreamsReject {
	return this.activitystreamsRejectMember
}

// GetActivityStreamsRelationship returns the value of this property. When
// IsActivityStreamsRelationship returns false, GetActivityStreamsRelationship
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsRelationship() vocab.ActivityStreamsRelationship {
	return this.activitystreamsRelationshipMember
}

// GetActivityStreamsRemove returns the value of this property. When
// IsActivityStreamsRemove returns false, GetActivityStreamsRemove will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsRemove() vocab.ActivityStreamsRemove {
	return this.activitystreamsRemoveMember
}

// GetActivityStreamsService returns the value of this property. When
// IsActivityStreamsService returns false, GetActivityStreamsService will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsService() vocab.ActivityStreamsService {
	return this.activitystreamsServiceMember
}

// GetActivityStreamsTentativeAccept returns the value of this property. When
// IsActivityStreamsTentativeAccept returns false,
// GetActivityStreamsTentativeAccept will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsTentativeAccept() vocab.ActivityStreamsTentativeAccept {
	return this.activitystreamsTentativeAcceptMember
}

// GetActivityStreamsTentativeReject returns the value of this property. When
// IsActivityStreamsTentativeReject returns false,
// GetActivityStreamsTentativeReject will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsTentativeReject() vocab.ActivityStreamsTentativeReject {
	return this.activitystreamsTentativeRejectMember
}

// GetActivityStreamsTombstone returns the value of this property. When
// IsActivityStreamsTombstone returns false, GetActivityStreamsTombstone will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsTombstone() vocab.ActivityStreamsTombstone {
	return this.activitystreamsTombstoneMember
}

// GetActivityStreamsTravel returns the value of this property. When
// IsActivityStreamsTravel returns false, GetActivityStreamsTravel will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsTravel() vocab.ActivityStreamsTravel {
	return this.activitystreamsTravelMember
}

// GetActivityStreamsUndo returns the value of this property. When
// IsActivityStreamsUndo returns false, GetActivityStreamsUndo will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsUndo() vocab.ActivityStreamsUndo {
	return this.activitystreamsUndoMember
}

// GetActivityStreamsUpdate returns the value of this property. When
// IsActivityStreamsUpdate returns false, GetActivityStreamsUpdate will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsUpdate() vocab.ActivityStreamsUpdate {
	return this.activitystreamsUpdateMember
}

// GetActivityStreamsVideo returns the value of this property. When
// IsActivityStreamsVideo returns false, GetActivityStreamsVideo will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsVideo() vocab.ActivityStreamsVideo {
	return this.activitystreamsVideoMember
}

// GetActivityStreamsView returns the value of this property. When
// IsActivityStreamsView returns false, GetActivityStreamsView will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetActivityStreamsView() vocab.ActivityStreamsView {
	return this.activitystreamsViewMember
}

// GetFunkwhaleAlbum returns the value of this property. When IsFunkwhaleAlbum
// returns false, GetFunkwhaleAlbum will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetFunkwhaleAlbum() vocab.FunkwhaleAlbum {
	return this.funkwhaleAlbumMember
}

// GetFunkwhaleArtist returns the value of this property. When IsFunkwhaleArtist
// returns false, GetFunkwhaleArtist will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetFunkwhaleArtist() vocab.FunkwhaleArtist {
	return this.funkwhaleArtistMember
}

// GetFunkwhaleLibrary returns the value of this property. When IsFunkwhaleLibrary
// returns false, GetFunkwhaleLibrary will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetFunkwhaleLibrary() vocab.FunkwhaleLibrary {
	return this.funkwhaleLibraryMember
}

// GetFunkwhaleTrack returns the value of this property. When IsFunkwhaleTrack
// returns false, GetFunkwhaleTrack will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetFunkwhaleTrack() vocab.FunkwhaleTrack {
	return this.funkwhaleTrackMember
}

// GetGoToSocialAnnounceApproval returns the value of this property. When
// IsGoToSocialAnnounceApproval returns false, GetGoToSocialAnnounceApproval
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialAnnounceApproval() vocab.GoToSocialAnnounceApproval {
	return this.gotosocialAnnounceApprovalMember
}

// GetGoToSocialAnnounceAuthorization returns the value of this property. When
// IsGoToSocialAnnounceAuthorization returns false,
// GetGoToSocialAnnounceAuthorization will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialAnnounceAuthorization() vocab.GoToSocialAnnounceAuthorization {
	return this.gotosocialAnnounceAuthorizationMember
}

// GetGoToSocialAnnounceRequest returns the value of this property. When
// IsGoToSocialAnnounceRequest returns false, GetGoToSocialAnnounceRequest
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialAnnounceRequest() vocab.GoToSocialAnnounceRequest {
	return this.gotosocialAnnounceRequestMember
}

// GetGoToSocialLikeApproval returns the value of this property. When
// IsGoToSocialLikeApproval returns false, GetGoToSocialLikeApproval will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialLikeApproval() vocab.GoToSocialLikeApproval {
	return this.gotosocialLikeApprovalMember
}

// GetGoToSocialLikeAuthorization returns the value of this property. When
// IsGoToSocialLikeAuthorization returns false, GetGoToSocialLikeAuthorization
// will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialLikeAuthorization() vocab.GoToSocialLikeAuthorization {
	return this.gotosocialLikeAuthorizationMember
}

// GetGoToSocialLikeRequest returns the value of this property. When
// IsGoToSocialLikeRequest returns false, GetGoToSocialLikeRequest will return
// an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialLikeRequest() vocab.GoToSocialLikeRequest {
	return this.gotosocialLikeRequestMember
}

// GetGoToSocialQuoteAuthorization returns the value of this property. When
// IsGoToSocialQuoteAuthorization returns false,
// GetGoToSocialQuoteAuthorization will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialQuoteAuthorization() vocab.GoToSocialQuoteAuthorization {
	return this.gotosocialQuoteAuthorizationMember
}

// GetGoToSocialQuoteRequest returns the value of this property. When
// IsGoToSocialQuoteRequest returns false, GetGoToSocialQuoteRequest will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialQuoteRequest() vocab.GoToSocialQuoteRequest {
	return this.gotosocialQuoteRequestMember
}

// GetGoToSocialReplyApproval returns the value of this property. When
// IsGoToSocialReplyApproval returns false, GetGoToSocialReplyApproval will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialReplyApproval() vocab.GoToSocialReplyApproval {
	return this.gotosocialReplyApprovalMember
}

// GetGoToSocialReplyAuthorization returns the value of this property. When
// IsGoToSocialReplyAuthorization returns false,
// GetGoToSocialReplyAuthorization will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialReplyAuthorization() vocab.GoToSocialReplyAuthorization {
	return this.gotosocialReplyAuthorizationMember
}

// GetGoToSocialReplyRequest returns the value of this property. When
// IsGoToSocialReplyRequest returns false, GetGoToSocialReplyRequest will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetGoToSocialReplyRequest() vocab.GoToSocialReplyRequest {
	return this.gotosocialReplyRequestMember
}

// GetIRI returns the IRI of this property. When IsIRI returns false, GetIRI will
// return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetIRI() *url.URL {
	return this.iri
}

// GetLitePubEmojiReact returns the value of this property. When
// IsLitePubEmojiReact returns false, GetLitePubEmojiReact will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetLitePubEmojiReact() vocab.LitePubEmojiReact {
	return this.litepubEmojiReactMember
}

// GetSchemaPropertyValue returns the value of this property. When
// IsSchemaPropertyValue returns false, GetSchemaPropertyValue will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetSchemaPropertyValue() vocab.SchemaPropertyValue {
	return this.schemaPropertyValueMember
}

// GetTootEmoji returns the value of this property. When IsTootEmoji returns
// false, GetTootEmoji will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetTootEmoji() vocab.TootEmoji {
	return this.tootEmojiMember
}

// GetTootHashtag returns the value of this property. When IsTootHashtag returns
// false, GetTootHashtag will return an arbitrary value.
func (this ActivityStreamsSubjectProperty) GetTootHashtag() vocab.TootHashtag {
	return this.tootHashtagMember
}

// GetTootIdentityProof returns the value of this property. When
// IsTootIdentityProof returns false, GetTootIdentityProof will return an
// arbitrary value.
func (this ActivityStreamsSubjectProperty) GetTootIdentityProof() vocab.TootIdentityProof {
	return this.tootIdentityProofMember
}

// GetType returns the value in this property as a Type. Returns nil if the value
// is not an ActivityStreams type, such as an IRI or another value.
func (this ActivityStreamsSubjectProperty) GetType() vocab.Type {
	if this.IsActivityStreamsLink() {
		return this.GetActivityStreamsLink()
	}
	if this.IsActivityStreamsObject() {
		return this.GetActivityStreamsObject()
	}
	if this.IsActivityStreamsAccept() {
		return this.GetActivityStreamsAccept()
	}
	if this.IsActivityStreamsActivity() {
		return this.GetActivityStreamsActivity()
	}
	if this.IsActivityStreamsAdd() {
		return this.GetActivityStreamsAdd()
	}
	if this.IsFunkwhaleAlbum() {
		return this.GetFunkwhaleAlbum()
	}
	if this.IsActivityStreamsAnnounce() {
		return this.GetActivityStreamsAnnounce()
	}
	if this.IsGoToSocialAnnounceApproval() {
		return this.GetGoToSocialAnnounceApproval()
	}
	if this.IsGoToSocialAnnounceAuthorization() {
		return this.GetGoToSocialAnnounceAuthorization()
	}
	if this.IsGoToSocialAnnounceRequest() {
		return this.GetGoToSocialAnnounceRequest()
	}
	if this.IsActivityStreamsApplication() {
		return this.GetActivityStreamsApplication()
	}
	if this.IsActivityStreamsArrive() {
		return this.GetActivityStreamsArrive()
	}
	if this.IsActivityStreamsArticle() {
		return this.GetActivityStreamsArticle()
	}
	if this.IsFunkwhaleArtist() {
		return this.GetFunkwhaleArtist()
	}
	if this.IsActivityStreamsAudio() {
		return this.GetActivityStreamsAudio()
	}
	if this.IsActivityStreamsBlock() {
		return this.GetActivityStreamsBlock()
	}
	if this.IsActivityStreamsCollection() {
		return this.GetActivityStreamsCollection()
	}
	if this.IsActivityStreamsCollectionPage() {
		return this.GetActivityStreamsCollectionPage()
	}
	if this.IsActivityStreamsCreate() {
		return this.GetActivityStreamsCreate()
	}
	if this.IsActivityStreamsDelete() {
		return this.GetActivityStreamsDelete()
	}
	if this.IsActivityStreamsDislike() {
		return this.GetActivityStreamsDislike()
	}
	if this.IsActivityStreamsDocument() {
		return this.GetActivityStreamsDocument()
	}
	if this.IsTootEmoji() {
		return this.GetTootEmoji()
	}
	if this.IsLitePubEmojiReact() {
		return this.GetLitePubEmojiReact()
	}
	if this.IsActivityStreamsEvent() {
		return this.GetActivityStreamsEvent()
	}
	if this.IsActivityStreamsFlag() {
		return this.GetActivityStreamsFlag()
	}
	if this.IsActivityStreamsFollow() {
		return this.GetActivityStreamsFollow()
	}
	if this.IsActivityStreamsGroup() {
		return this.GetActivityStreamsGroup()
	}
	if this.IsTootHashtag() {
		return this.GetTootHashtag()
	}
	if this.IsTootIdentityProof() {
		return this.GetTootIdentityProof()
	}
	if this.IsActivityStreamsIgnore() {
		return this.GetActivityStreamsIgnore()
	}
	if this.IsActivityStreamsImage() {
		return this.GetActivityStreamsImage()
	}
	if this.IsActivityStreamsIntransitiveActivity() {
		return this.GetActivityStreamsIntransitiveActivity()
	}
	if this.IsActivityStreamsInvite() {
		return this.GetActivityStreamsInvite()
	}
	if this.IsActivityStreamsJoin() {
		return this.GetActivityStreamsJoin()
	}
	if this.IsActivityStreamsLeave() {
		return this.GetActivityStreamsLeave()
	}
	if this.IsFunkwhaleLibrary() {
		return this.GetFunkwhaleLibrary()
	}
	if this.IsActivityStreamsLike() {
		return this.GetActivityStreamsLike()
	}
	if this.IsGoToSocialLikeApproval() {
		return this.GetGoToSocialLikeApproval()
	}
	if this.IsGoToSocialLikeAuthorization() {
		return this.GetGoToSocialLikeAuthorization()
	}
	if this.IsGoToSocialLikeRequest() {
		return this.GetGoToSocialLikeRequest()
	}
	if this.IsActivityStreamsListen() {
		return this.GetActivityStreamsListen()
	}
	if this.IsActivityStreamsMention() {
		return this.GetActivityStreamsMention()
	}
	if this.IsActivityStreamsMove() {
		return this.GetActivityStreamsMove()
	}
	if this.IsActivityStreamsNote() {
		return this.GetActivityStreamsNote()
	}
	if this.IsActivityStreamsOffer() {
		return this.GetActivityStreamsOffer()
	}
	if this.IsActivityStreamsOrderedCollection() {
		return this.GetActivityStreamsOrderedCollection()
	}
	if this.IsActivityStreamsOrderedCollectionPage() {
		return this.GetActivityStreamsOrderedCollectionPage()
	}
	if this.IsActivityStreamsOrganization() {
		return this.GetActivityStreamsOrganization()
	}
	if this.IsActivityStreamsPage() {
		return this.GetActivityStreamsPage()
	}
	if this.IsActivityStreamsPerson() {
		return this.GetActivityStreamsPerson()
	}
	if this.IsActivityStreamsPlace() {
		return this.GetActivityStreamsPlace()
	}
	if this.IsActivityStreamsProfile() {
		return this.GetActivityStreamsProfile()
	}
	if this.IsSchemaPropertyValue() {
		return this.GetSchemaPropertyValue()
	}
	if this.IsActivityStreamsQuestion() {
		return this.GetActivityStreamsQuestion()
	}
	if this.IsGoToSocialQuoteAuthorization() {
		return this.GetGoToSocialQuoteAuthorization()
	}
	if this.IsGoToSocialQuoteRequest() {
		return this.GetGoToSocialQuoteRequest()
	}
	if this.IsActivityStreamsRead() {
		return this.GetActivityStreamsRead()
	}
	if this.IsActivityStreamsReject() {
		return this.GetActivityStreamsReject()
	}
	if this.IsActivityStreamsRelationship() {
		return this.GetActivityStreamsRelationship()
	}
	if this.IsActivityStreamsRemove() {
		return this.GetActivityStreamsRemove()
	}
	if this.IsGoToSocialReplyApproval() {
		return this.GetGoToSocialReplyApproval()
	}
	if this.IsGoToSocialReplyAuthorization() {
		return this.GetGoToSocialReplyAuthorization()
	}
	if this.IsGoToSocialReplyRequest() {
		return this.GetGoToSocialReplyRequest()
	}
	if this.IsActivityStreamsService() {
		return this.GetActivityStreamsService()
	}
	if this.IsActivityStreamsTentativeAccept() {
		return this.GetActivityStreamsTentativeAccept()
	}
	if this.IsActivityStreamsTentativeReject() {
		return this.GetActivityStreamsTentativeReject()
	}
	if this.IsActivityStreamsTombstone() {
		return this.GetActivityStreamsTombstone()
	}
	if this.IsFunkwhaleTrack() {
		return this.GetFunkwhaleTrack()
	}
	if this.IsActivityStreamsTravel() {
		return this.GetActivityStreamsTravel()
	}
	if this.IsActivityStreamsUndo() {
		return this.GetActivityStreamsUndo()
	}
	if this.IsActivityStreamsUpdate() {
		return this.GetActivityStreamsUpdate()
	}
	if this.IsActivityStreamsVideo() {
		return this.GetActivityStreamsVideo()
	}
	if this.IsActivityStreamsView() {
		return this.GetActivityStreamsView()
	}

	return nil
}

// HasAny returns true if any of the different values is set.
func (this ActivityStreamsSubjectProperty) HasAny() bool {
	return this.IsActivityStreamsLink() ||
		this.IsActivityStreamsObject() ||
		this.IsActivityStreamsAccept() ||
		this.IsActivityStreamsActivity() ||
		this.IsActivityStreamsAdd() ||
		this.IsFunkwhaleAlbum() ||
		this.IsActivityStreamsAnnounce() ||
		this.IsGoToSocialAnnounceApproval() ||
		this.IsGoToSocialAnnounceAuthorization() ||
		this.IsGoToSocialAnnounceRequest() ||
		this.IsActivityStreamsApplication() ||
		this.IsActivityStreamsArrive() ||
		this.IsActivityStreamsArticle() ||
		this.IsFunkwhaleArtist() ||
		this.IsActivityStreamsAudio() ||
		this.IsActivityStreamsBlock() ||
		this.IsActivityStreamsCollection() ||
		this.IsActivityStreamsCollectionPage() ||
		this.IsActivityStreamsCreate() ||
		this.IsActivityStreamsDelete() ||
		this.IsActivityStreamsDislike() ||
		this.IsActivityStreamsDocument() ||
		this.IsTootEmoji() ||
		this.IsLitePubEmojiReact() ||
		this.IsActivityStreamsEvent() ||
		this.IsActivityStreamsFlag() ||
		this.IsActivityStreamsFollow() ||
		this.IsActivityStreamsGroup() ||
		this.IsTootHashtag() ||
		this.IsTootIdentityProof() ||
		this.IsActivityStreamsIgnore() ||
		this.IsActivityStreamsImage() ||
		this.IsActivityStreamsIntransitiveActivity() ||
		this.IsActivityStreamsInvite() ||
		this.IsActivityStreamsJoin() ||
		this.IsActivityStreamsLeave() ||
		this.IsFunkwhaleLibrary() ||
		this.IsActivityStreamsLike() ||
		this.IsGoToSocialLikeApproval() ||
		this.IsGoToSocialLikeAuthorization() ||
		this.IsGoToSocialLikeRequest() ||
		this.IsActivityStreamsListen() ||
		this.IsActivityStreamsMention() ||
		this.IsActivityStreamsMove() ||
		this.IsActivityStreamsNote() ||
		this.IsActivityStreamsOffer() ||
		this.IsActivityStreamsOrderedCollection() ||
		this.IsActivityStreamsOrderedCollectionPage() ||
		this.IsActivityStreamsOrganization() ||
		this.IsActivityStreamsPage() ||
		this.IsActivityStreamsPerson() ||
		this.IsActivityStreamsPlace() ||
		this.IsActivityStreamsProfile() ||
		this.IsSchemaPropertyValue() ||
		this.IsActivityStreamsQuestion() ||
		this.IsGoToSocialQuoteAuthorization() ||
		this.IsGoToSocialQuoteRequest() ||
		this.IsActivityStreamsRead() ||
		this.IsActivityStreamsReject() ||
		this.IsActivityStreamsRelationship() ||
		this.IsActivityStreamsRemove() ||
		this.IsGoToSocialReplyApproval() ||
		this.IsGoToSocialReplyAuthorization() ||
		this.IsGoToSocialReplyRequest() ||
		this.IsActivityStreamsService() ||
		this.IsActivityStreamsTentativeAccept() ||
		this.IsActivityStreamsTentativeReject() ||
		this.IsActivityStreamsTombstone() ||
		this.IsFunkwhaleTrack() ||
		this.IsActivityStreamsTravel() ||
		this.IsActivityStreamsUndo() ||
		this.IsActivityStreamsUpdate() ||
		this.IsActivityStreamsVideo() ||
		this.IsActivityStreamsView() ||
		this.iri != nil
}

// IsActivityStreamsAccept returns true if this property has a type of "Accept".
// When true, use the GetActivityStreamsAccept and SetActivityStreamsAccept
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsAccept() bool {
	return this.activitystreamsAcceptMember != nil
}

// IsActivityStreamsActivity returns true if this property has a type of
// "Activity". When true, use the GetActivityStreamsActivity and
// SetActivityStreamsActivity methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsActivity() bool {
	return this.activitystreamsActivityMember != nil
}

// IsActivityStreamsAdd returns true if this property has a type of "Add". When
// true, use the GetActivityStreamsAdd and SetActivityStreamsAdd methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsAdd() bool {
	return this.activitystreamsAddMember != nil
}

// IsActivityStreamsAnnounce returns true if this property has a type of
// "Announce". When true, use the GetActivityStreamsAnnounce and
// SetActivityStreamsAnnounce methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsAnnounce() bool {
	return this.activitystreamsAnnounceMember != nil
}

// IsActivityStreamsApplication returns true if this property has a type of
// "Application". When true, use the GetActivityStreamsApplication and
// SetActivityStreamsApplication methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsApplication() bool {
	return this.activitystreamsApplicationMember != nil
}

// IsActivityStreamsArrive returns true if this property has a type of "Arrive".
// When true, use the GetActivityStreamsArrive and SetActivityStreamsArrive
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsArrive() bool {
	return this.activitystreamsArriveMember != nil
}

// IsActivityStreamsArticle returns true if this property has a type of "Article".
// When true, use the GetActivityStreamsArticle and SetActivityStreamsArticle
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsArticle() bool {
	return this.activitystreamsArticleMember != nil
}

// IsActivityStreamsAudio returns true if this property has a type of "Audio".
// When true, use the GetActivityStreamsAudio and SetActivityStreamsAudio
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsAudio() bool {
	return this.activitystreamsAudioMember != nil
}

// IsActivityStreamsBlock returns true if this property has a type of "Block".
// When true, use the GetActivityStreamsBlock and SetActivityStreamsBlock
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsBlock() bool {
	return this.activitystreamsBlockMember != nil
}

// IsActivityStreamsCollection returns true if this property has a type of
// "Collection". When true, use the GetActivityStreamsCollection and
// SetActivityStreamsCollection methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsCollection() bool {
	return this.activitystreamsCollectionMember != nil
}

// IsActivityStreamsCollectionPage returns true if this property has a type of
// "CollectionPage". When true, use the GetActivityStreamsCollectionPage and
// SetActivityStreamsCollectionPage methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsCollectionPage() bool {
	return this.activitystreamsCollectionPageMember != nil
}

// IsActivityStreamsCreate returns true if this property has a type of "Create".
// When true, use the GetActivityStreamsCreate and SetActivityStreamsCreate
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsCreate() bool {
	return this.activitystreamsCreateMember != nil
}

// IsActivityStreamsDelete returns true if this property has a type of "Delete".
// When true, use the GetActivityStreamsDelete and SetActivityStreamsDelete
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsDelete() bool {
	return this.activitystreamsDeleteMember != nil
}

// IsActivityStreamsDislike returns true if this property has a type of "Dislike".
// When true, use the GetActivityStreamsDislike and SetActivityStreamsDislike
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsDislike() bool {
	return this.activitystreamsDislikeMember != nil
}

// IsActivityStreamsDocument returns true if this property has a type of
// "Document". When true, use the GetActivityStreamsDocument and
// SetActivityStreamsDocument methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsDocument() bool {
	return this.activitystreamsDocumentMember != nil
}

// IsActivityStreamsEvent returns true if this property has a type of "Event".
// When true, use the GetActivityStreamsEvent and SetActivityStreamsEvent
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsEvent() bool {
	return this.activitystreamsEventMember != nil
}

// IsActivityStreamsFlag returns true if this property has a type of "Flag". When
// true, use the GetActivityStreamsFlag and SetActivityStreamsFlag methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsFlag() bool {
	return this.activitystreamsFlagMember != nil
}

// IsActivityStreamsFollow returns true if this property has a type of "Follow".
// When true, use the GetActivityStreamsFollow and SetActivityStreamsFollow
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsFollow() bool {
	return this.activitystreamsFollowMember != nil
}

// IsActivityStreamsGroup returns true if this property has a type of "Group".
// When true, use the GetActivityStreamsGroup and SetActivityStreamsGroup
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsGroup() bool {
	return this.activitystreamsGroupMember != nil
}

// IsActivityStreamsIgnore returns true if this property has a type of "Ignore".
// When true, use the GetActivityStreamsIgnore and SetActivityStreamsIgnore
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsIgnore() bool {
	return this.activitystreamsIgnoreMember != nil
}

// IsActivityStreamsImage returns true if this property has a type of "Image".
// When true, use the GetActivityStreamsImage and SetActivityStreamsImage
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsImage() bool {
	return this.activitystreamsImageMember != nil
}

// IsActivityStreamsIntransitiveActivity returns true if this property has a type
// of "IntransitiveActivity". When true, use the
// GetActivityStreamsIntransitiveActivity and
// SetActivityStreamsIntransitiveActivity methods to access and set this
// property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsIntransitiveActivity() bool {
	return this.activitystreamsIntransitiveActivityMember != nil
}

// IsActivityStreamsInvite returns true if this property has a type of "Invite".
// When true, use the GetActivityStreamsInvite and SetActivityStreamsInvite
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsInvite() bool {
	return this.activitystreamsInviteMember != nil
}

// IsActivityStreamsJoin returns true if this property has a type of "Join". When
// true, use the GetActivityStreamsJoin and SetActivityStreamsJoin methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsJoin() bool {
	return this.activitystreamsJoinMember != nil
}

// IsActivityStreamsLeave returns true if this property has a type of "Leave".
// When true, use the GetActivityStreamsLeave and SetActivityStreamsLeave
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsLeave() bool {
	return this.activitystreamsLeaveMember != nil
}

// IsActivityStreamsLike returns true if this property has a type of "Like". When
// true, use the GetActivityStreamsLike and SetActivityStreamsLike methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsLike() bool {
	return this.activitystreamsLikeMember != nil
}

// IsActivityStreamsLink returns true if this property has a type of "Link". When
// true, use the GetActivityStreamsLink and SetActivityStreamsLink methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsLink() bool {
	return this.activitystreamsLinkMember != nil
}

// IsActivityStreamsListen returns true if this property has a type of "Listen".
// When true, use the GetActivityStreamsListen and SetActivityStreamsListen
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsListen() bool {
	return this.activitystreamsListenMember != nil
}

// IsActivityStreamsMention returns true if this property has a type of "Mention".
// When true, use the GetActivityStreamsMention and SetActivityStreamsMention
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsMention() bool {
	return this.activitystreamsMentionMember != nil
}

// IsActivityStreamsMove returns true if this property has a type of "Move". When
// true, use the GetActivityStreamsMove and SetActivityStreamsMove methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsMove() bool {
	return this.activitystreamsMoveMember != nil
}

// IsActivityStreamsNote returns true if this property has a type of "Note". When
// true, use the GetActivityStreamsNote and SetActivityStreamsNote methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsNote() bool {
	return this.activitystreamsNoteMember != nil
}

// IsActivityStreamsObject returns true if this property has a type of "Object".
// When true, use the GetActivityStreamsObject and SetActivityStreamsObject
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsObject() bool {
	return this.activitystreamsObjectMember != nil
}

// IsActivityStreamsOffer returns true if this property has a type of "Offer".
// When true, use the GetActivityStreamsOffer and SetActivityStreamsOffer
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsOffer() bool {
	return this.activitystreamsOfferMember != nil
}

// IsActivityStreamsOrderedCollection returns true if this property has a type of
// "OrderedCollection". When true, use the GetActivityStreamsOrderedCollection
// and SetActivityStreamsOrderedCollection methods to access and set this
// property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsOrderedCollection() bool {
	return this.activitystreamsOrderedCollectionMember != nil
}

// IsActivityStreamsOrderedCollectionPage returns true if this property has a type
// of "OrderedCollectionPage". When true, use the
// GetActivityStreamsOrderedCollectionPage and
// SetActivityStreamsOrderedCollectionPage methods to access and set this
// property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsOrderedCollectionPage() bool {
	return this.activitystreamsOrderedCollectionPageMember != nil
}

// IsActivityStreamsOrganization returns true if this property has a type of
// "Organization". When true, use the GetActivityStreamsOrganization and
// SetActivityStreamsOrganization methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsOrganization() bool {
	return this.activitystreamsOrganizationMember != nil
}

// IsActivityStreamsPage returns true if this property has a type of "Page". When
// true, use the GetActivityStreamsPage and SetActivityStreamsPage methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsPage() bool {
	return this.activitystreamsPageMember != nil
}

// IsActivityStreamsPerson returns true if this property has a type of "Person".
// When true, use the GetActivityStreamsPerson and SetActivityStreamsPerson
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsPerson() bool {
	return this.activitystreamsPersonMember != nil
}

// IsActivityStreamsPlace returns true if this property has a type of "Place".
// When true, use the GetActivityStreamsPlace and SetActivityStreamsPlace
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsPlace() bool {
	return this.activitystreamsPlaceMember != nil
}

// IsActivityStreamsProfile returns true if this property has a type of "Profile".
// When true, use the GetActivityStreamsProfile and SetActivityStreamsProfile
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsProfile() bool {
	return this.activitystreamsProfileMember != nil
}

// IsActivityStreamsQuestion returns true if this property has a type of
// "Question". When true, use the GetActivityStreamsQuestion and
// SetActivityStreamsQuestion methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsQuestion() bool {
	return this.activitystreamsQuestionMember != nil
}

// IsActivityStreamsRead returns true if this property has a type of "Read". When
// true, use the GetActivityStreamsRead and SetActivityStreamsRead methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsRead() bool {
	return this.activitystreamsReadMember != nil
}

// IsActivityStreamsReject returns true if this property has a type of "Reject".
// When true, use the GetActivityStreamsReject and SetActivityStreamsReject
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsReject() bool {
	return this.activitystreamsRejectMember != nil
}

// IsActivityStreamsRelationship returns true if this property has a type of
// "Relationship". When true, use the GetActivityStreamsRelationship and
// SetActivityStreamsRelationship methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsRelationship() bool {
	return this.activitystreamsRelationshipMember != nil
}

// IsActivityStreamsRemove returns true if this property has a type of "Remove".
// When true, use the GetActivityStreamsRemove and SetActivityStreamsRemove
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsRemove() bool {
	return this.activitystreamsRemoveMember != nil
}

// IsActivityStreamsService returns true if this property has a type of "Service".
// When true, use the GetActivityStreamsService and SetActivityStreamsService
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsService() bool {
	return this.activitystreamsServiceMember != nil
}

// IsActivityStreamsTentativeAccept returns true if this property has a type of
// "TentativeAccept". When true, use the GetActivityStreamsTentativeAccept and
// SetActivityStreamsTentativeAccept methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsTentativeAccept() bool {
	return this.activitystreamsTentativeAcceptMember != nil
}

// IsActivityStreamsTentativeReject returns true if this property has a type of
// "TentativeReject". When true, use the GetActivityStreamsTentativeReject and
// SetActivityStreamsTentativeReject methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsTentativeReject() bool {
	return this.activitystreamsTentativeRejectMember != nil
}

// IsActivityStreamsTombstone returns true if this property has a type of
// "Tombstone". When true, use the GetActivityStreamsTombstone and
// SetActivityStreamsTombstone methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsTombstone() bool {
	return this.activitystreamsTombstoneMember != nil
}

// IsActivityStreamsTravel returns true if this property has a type of "Travel".
// When true, use the GetActivityStreamsTravel and SetActivityStreamsTravel
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsTravel() bool {
	return this.activitystreamsTravelMember != nil
}

// IsActivityStreamsUndo returns true if this property has a type of "Undo". When
// true, use the GetActivityStreamsUndo and SetActivityStreamsUndo methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsUndo() bool {
	return this.activitystreamsUndoMember != nil
}

// IsActivityStreamsUpdate returns true if this property has a type of "Update".
// When true, use the GetActivityStreamsUpdate and SetActivityStreamsUpdate
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsUpdate() bool {
	return this.activitystreamsUpdateMember != nil
}

// IsActivityStreamsVideo returns true if this property has a type of "Video".
// When true, use the GetActivityStreamsVideo and SetActivityStreamsVideo
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsVideo() bool {
	return this.activitystreamsVideoMember != nil
}

// IsActivityStreamsView returns true if this property has a type of "View". When
// true, use the GetActivityStreamsView and SetActivityStreamsView methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsActivityStreamsView() bool {
	return this.activitystreamsViewMember != nil
}

// IsFunkwhaleAlbum returns true if this property has a type of "Album". When
// true, use the GetFunkwhaleAlbum and SetFunkwhaleAlbum methods to access and
// set this property.
func (this ActivityStreamsSubjectProperty) IsFunkwhaleAlbum() bool {
	return this.funkwhaleAlbumMember != nil
}

// IsFunkwhaleArtist returns true if this property has a type of "Artist". When
// true, use the GetFunkwhaleArtist and SetFunkwhaleArtist methods to access
// and set this property.
func (this ActivityStreamsSubjectProperty) IsFunkwhaleArtist() bool {
	return this.funkwhaleArtistMember != nil
}

// IsFunkwhaleLibrary returns true if this property has a type of "Library". When
// true, use the GetFunkwhaleLibrary and SetFunkwhaleLibrary methods to access
// and set this property.
func (this ActivityStreamsSubjectProperty) IsFunkwhaleLibrary() bool {
	return this.funkwhaleLibraryMember != nil
}

// IsFunkwhaleTrack returns true if this property has a type of "Track". When
// true, use the GetFunkwhaleTrack and SetFunkwhaleTrack methods to access and
// set this property.
func (this ActivityStreamsSubjectProperty) IsFunkwhaleTrack() bool {
	return this.funkwhaleTrackMember != nil
}

// IsGoToSocialAnnounceApproval returns true if this property has a type of
// "AnnounceApproval". When true, use the GetGoToSocialAnnounceApproval and
// SetGoToSocialAnnounceApproval methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialAnnounceApproval() bool {
	return this.gotosocialAnnounceApprovalMember != nil
}

// IsGoToSocialAnnounceAuthorization returns true if this property has a type of
// "AnnounceAuthorization". When true, use the
// GetGoToSocialAnnounceAuthorization and SetGoToSocialAnnounceAuthorization
// methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialAnnounceAuthorization() bool {
	return this.gotosocialAnnounceAuthorizationMember != nil
}

// IsGoToSocialAnnounceRequest returns true if this property has a type of
// "AnnounceRequest". When true, use the GetGoToSocialAnnounceRequest and
// SetGoToSocialAnnounceRequest methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialAnnounceRequest() bool {
	return this.gotosocialAnnounceRequestMember != nil
}

// IsGoToSocialLikeApproval returns true if this property has a type of
// "LikeApproval". When true, use the GetGoToSocialLikeApproval and
// SetGoToSocialLikeApproval methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialLikeApproval() bool {
	return this.gotosocialLikeApprovalMember != nil
}

// IsGoToSocialLikeAuthorization returns true if this property has a type of
// "LikeAuthorization". When true, use the GetGoToSocialLikeAuthorization and
// SetGoToSocialLikeAuthorization methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialLikeAuthorization() bool {
	return this.gotosocialLikeAuthorizationMember != nil
}

// IsGoToSocialLikeRequest returns true if this property has a type of
// "LikeRequest". When true, use the GetGoToSocialLikeRequest and
// SetGoToSocialLikeRequest methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialLikeRequest() bool {
	return this.gotosocialLikeRequestMember != nil
}

// IsGoToSocialQuoteAuthorization returns true if this property has a type of
// "QuoteAuthorization". When true, use the GetGoToSocialQuoteAuthorization
// and SetGoToSocialQuoteAuthorization methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialQuoteAuthorization() bool {
	return this.gotosocialQuoteAuthorizationMember != nil
}

// IsGoToSocialQuoteRequest returns true if this property has a type of
// "QuoteRequest". When true, use the GetGoToSocialQuoteRequest and
// SetGoToSocialQuoteRequest methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialQuoteRequest() bool {
	return this.gotosocialQuoteRequestMember != nil
}

// IsGoToSocialReplyApproval returns true if this property has a type of
// "ReplyApproval". When true, use the GetGoToSocialReplyApproval and
// SetGoToSocialReplyApproval methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialReplyApproval() bool {
	return this.gotosocialReplyApprovalMember != nil
}

// IsGoToSocialReplyAuthorization returns true if this property has a type of
// "ReplyAuthorization". When true, use the GetGoToSocialReplyAuthorization
// and SetGoToSocialReplyAuthorization methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialReplyAuthorization() bool {
	return this.gotosocialReplyAuthorizationMember != nil
}

// IsGoToSocialReplyRequest returns true if this property has a type of
// "ReplyRequest". When true, use the GetGoToSocialReplyRequest and
// SetGoToSocialReplyRequest methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsGoToSocialReplyRequest() bool {
	return this.gotosocialReplyRequestMember != nil
}

// IsIRI returns true if this property is an IRI. When true, use GetIRI and SetIRI
// to access and set this property
func (this ActivityStreamsSubjectProperty) IsIRI() bool {
	return this.iri != nil
}

// IsLitePubEmojiReact returns true if this property has a type of "EmojiReact".
// When true, use the GetLitePubEmojiReact and SetLitePubEmojiReact methods to
// access and set this property.
func (this ActivityStreamsSubjectProperty) IsLitePubEmojiReact() bool {
	return this.litepubEmojiReactMember != nil
}

// IsSchemaPropertyValue returns true if this property has a type of
// "PropertyValue". When true, use the GetSchemaPropertyValue and
// SetSchemaPropertyValue methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsSchemaPropertyValue() bool {
	return this.schemaPropertyValueMember != nil
}

// IsTootEmoji returns true if this property has a type of "Emoji". When true, use
// the GetTootEmoji and SetTootEmoji methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsTootEmoji() bool {
	return this.tootEmojiMember != nil
}

// IsTootHashtag returns true if this property has a type of "Hashtag". When true,
// use the GetTootHashtag and SetTootHashtag methods to access and set this
// property.
func (this ActivityStreamsSubjectProperty) IsTootHashtag() bool {
	return this.tootHashtagMember != nil
}

// IsTootIdentityProof returns true if this property has a type of
// "IdentityProof". When true, use the GetTootIdentityProof and
// SetTootIdentityProof methods to access and set this property.
func (this ActivityStreamsSubjectProperty) IsTootIdentityProof() bool {
	return this.tootIdentityProofMember != nil
}

// JSONLDContext returns the JSONLD URIs required in the context string for this
// property and the specific values that are set. The value in the map is the
// alias used to import the property's value or values.
func (this ActivityStreamsSubjectProperty) JSONLDContext() map[string]string {
	m := map[string]string{"https://www.w3.org/ns/activitystreams": this.alias}
	var child map[string]string
	if this.IsActivityStreamsLink() {
		child = this.GetActivityStreamsLink().JSONLDContext()
	} else if this.IsActivityStreamsObject() {
		child = this.GetActivityStreamsObject().JSONLDContext()
	} else if this.IsActivityStreamsAccept() {
		child = this.GetActivityStreamsAccept().JSONLDContext()
	} else if this.IsActivityStreamsActivity() {
		child = this.GetActivityStreamsActivity().JSONLDContext()
	} else if this.IsActivityStreamsAdd() {
		child = this.GetActivityStreamsAdd().JSONLDContext()
	} else if this.IsFunkwhaleAlbum() {
		child = this.GetFunkwhaleAlbum().JSONLDContext()
	} else if this.IsActivityStreamsAnnounce() {
		child = this.GetActivityStreamsAnnounce().JSONLDContext()
	} else if this.IsGoToSocialAnnounceApproval() {
		child = this.GetGoToSocialAnnounceApproval().JSONLDContext()
	} else if this.IsGoToSocialAnnounceAuthorization() {
		child = this.GetGoToSocialAnnounceAuthorization().JSONLDContext()
	} else if this.IsGoToSocialAnnounceRequest() {
		child = this.GetGoToSocialAnnounceRequest().JSONLDContext()
	} else if this.IsActivityStreamsApplication() {
		child = this.GetActivityStreamsApplication().JSONLDContext()
	} else if this.IsActivityStreamsArrive() {
		child = this.GetActivityStreamsArrive().JSONLDContext()
	} else if this.IsActivityStreamsArticle() {
		child = this.GetActivityStreamsArticle().JSONLDContext()
	} else if this.IsFunkwhaleArtist() {
		child = this.GetFunkwhaleArtist().JSONLDContext()
	} else if this.IsActivityStreamsAudio() {
		child = this.GetActivityStreamsAudio().JSONLDContext()
	} else if this.IsActivityStreamsBlock() {
		child = this.GetActivityStreamsBlock().JSONLDContext()
	} else if this.IsActivityStreamsCollection() {
		child = this.GetActivityStreamsCollection().JSONLDContext()
	} else if this.IsActivityStreamsCollectionPage() {
		child = this.GetActivityStreamsCollectionPage().JSONLDContext()
	} else if this.IsActivityStreamsCreate() {
		child = this.GetActivityStreamsCreate().JSONLDContext()
	} else if this.IsActivityStreamsDelete() {
		child = this.GetActivityStreamsDelete().JSONLDContext()
	} else if this.IsActivityStreamsDislike() {
		child = this.GetActivityStreamsDislike().JSONLDContext()
	} else if this.IsActivityStreamsDocument() {
		child = this.GetActivityStreamsDocument().JSONLDContext()
	} else if this.IsTootEmoji() {
		child = this.GetTootEmoji().JSONLDContext()
	} else if this.IsLitePubEmojiReact() {
		child = this.GetLitePubEmojiReact().JSONLDContext()
	} else if this.IsActivityStreamsEvent() {
		child = this.GetActivityStreamsEvent().JSONLDContext()
	} else if this.IsActivityStreamsFlag() {
		child = this.GetActivityStreamsFlag().JSONLDContext()
	} else if this.IsActivityStreamsFollow() {
		child = this.GetActivityStreamsFollow().JSONLDContext()
	} else if this.IsActivityStreamsGroup() {
		child = this.GetActivityStreamsGroup().JSONLDContext()
	} else if this.IsTootHashtag() {
		child = this.GetTootHashtag().JSONLDContext()
	} else if this.IsTootIdentityProof() {
		child = this.GetTootIdentityProof().JSONLDContext()
	} else if this.IsActivityStreamsIgnore() {
		child = this.GetActivityStreamsIgnore().JSONLDContext()
	} else if this.IsActivityStreamsImage() {
		child = this.GetActivityStreamsImage().JSONLDContext()
	} else if this.IsActivityStreamsIntransitiveActivity() {
		child = this.GetActivityStreamsIntransitiveActivity().JSONLDContext()
	} else if this.IsActivityStreamsInvite() {
		child = this.GetActivityStreamsInvite().JSONLDContext()
	} else if this.IsActivityStreamsJoin() {
		child = this.GetActivityStreamsJoin().JSONLDContext()
	} else if this.IsActivityStreamsLeave() {
		child = this.GetActivityStreamsLeave().JSONLDContext()
	} else if this.IsFunkwhaleLibrary() {
		child = this.GetFunkwhaleLibrary().JSONLDContext()
	} else if this.IsActivityStreamsLike() {
		child = this.GetActivityStreamsLike().JSONLDContext()
	} else if this.IsGoToSocialLikeApproval() {
		child = this.GetGoToSocialLikeApproval().JSONLDContext()
	} else if this.IsGoToSocialLikeAuthorization() {
		child = this.GetGoToSocialLikeAuthorization().JSONLDContext()
	} else if this.IsGoToSocialLikeRequest() {
		child = this.GetGoToSocialLikeRequest().JSONLDContext()
	} else if this.IsActivityStreamsListen() {
		child = this.GetActivityStreamsListen().JSONLDContext()
	} else if this.IsActivityStreamsMention() {
		child = this.GetActivityStreamsMention().JSONLDContext()
	} else if this.IsActivityStreamsMove() {
		child = this.GetActivityStreamsMove().JSONLDContext()
	} else if this.IsActivityStreamsNote() {
		child = this.GetActivityStreamsNote().JSONLDContext()
	} else if this.IsActivityStreamsOffer() {
		child = this.GetActivityStreamsOffer().JSONLDContext()
	} else if this.IsActivityStreamsOrderedCollection() {
		child = this.GetActivityStreamsOrderedCollection().JSONLDContext()
	} else if this.IsActivityStreamsOrderedCollectionPage() {
		child = this.GetActivityStreamsOrderedCollectionPage().JSONLDContext()
	} else if this.IsActivityStreamsOrganization() {
		child = this.GetActivityStreamsOrganization().JSONLDContext()
	} else if this.IsActivityStreamsPage() {
		child = this.GetActivityStreamsPage().JSONLDContext()
	} else if this.IsActivityStreamsPerson() {
		child = this.GetActivityStreamsPerson().JSONLDContext()
	} else if this.IsActivityStreamsPlace() {
		child = this.GetActivityStreamsPlace().JSONLDContext()
	} else if this.IsActivityStreamsProfile() {
		child = this.GetActivityStreamsProfile().JSONLDContext()
	} else if this.IsSchemaPropertyValue() {
		child = this.GetSchemaPropertyValue().JSONLDContext()
	} else if this.IsActivityStreamsQuestion() {
		child = this.GetActivityStreamsQuestion().JSONLDContext()
	} else if this.IsGoToSocialQuoteAuthorization() {
		child = this.GetGoToSocialQuoteAuthorization().JSONLDContext()
	} else if this.IsGoToSocialQuoteRequest() {
		child = this.GetGoToSocialQuoteRequest().JSONLDContext()
	} else if this.IsActivityStreamsRead() {
		child = this.GetActivityStreamsRead().JSONLDContext()
	} else if this.IsActivityStreamsReject() {
		child = this.GetActivityStreamsReject().JSONLDContext()
	} else if this.IsActivityStreamsRelationship() {
		child = this.GetActivityStreamsRelationship().JSONLDContext()
	} else if this.IsActivityStreamsRemove() {
		child = this.GetActivityStreamsRemove().JSONLDContext()
	} else if this.IsGoToSocialReplyApproval() {
		child = this.GetGoToSocialReplyApproval().JSONLDContext()
	} else if this.IsGoToSocialReplyAuthorization() {
		child = this.GetGoToSocialReplyAuthorization().JSONLDContext()
	} else if this.IsGoToSocialReplyRequest() {
		child = this.GetGoToSocialReplyRequest().JSONLDContext()
	} else if this.IsActivityStreamsService() {
		child = this.GetActivityStreamsService().JSONLDContext()
	} else if this.IsActivityStreamsTentativeAccept() {
		child = this.GetActivityStreamsTentativeAccept().JSONLDContext()
	} else if this.IsActivityStreamsTentativeReject() {
		child = this.GetActivityStreamsTentativeReject().JSONLDContext()
	} else if this.IsActivityStreamsTombstone() {
		child = this.GetActivityStreamsTombstone().JSONLDContext()
	} else if this.IsFunkwhaleTrack() {
		child = this.GetFunkwhaleTrack().JSONLDContext()
	} else if this.IsActivityStreamsTravel() {
		child = this.GetActivityStreamsTravel().JSONLDContext()
	} else if this.IsActivityStreamsUndo() {
		child = this.GetActivityStreamsUndo().JSONLDContext()
	} else if this.IsActivityStreamsUpdate() {
		child = this.GetActivityStreamsUpdate().JSONLDContext()
	} else if this.IsActivityStreamsVideo() {
		child = this.GetActivityStreamsVideo().JSONLDContext()
	} else if this.IsActivityStreamsView() {
		child = this.GetActivityStreamsView().JSONLDContext()
	}
	/*
	   Since the literal maps in this function are determined at
	   code-generation time, this loop should not overwrite an existing key with a
	   new value.
	*/
	for k, v := range child {
		m[k] = v
	}
	return m
}

// KindIndex computes an arbitrary value for indexing this kind of value. This is
// a leaky API detail only for folks looking to replace the go-fed
// implementation. Applications should not use this method.
func (this ActivityStreamsSubjectProperty) KindIndex() int {
	if this.IsActivityStreamsLink() {
		return 0
	}
	if this.IsActivityStreamsObject() {
		return 1
	}
	if this.IsActivityStreamsAccept() {
		return 2
	}
	if this.IsActivityStreamsActivity() {
		return 3
	}
	if this.IsActivityStreamsAdd() {
		return 4
	}
	if this.IsFunkwhaleAlbum() {
		return 5
	}
	if this.IsActivityStreamsAnnounce() {
		return 6
	}
	if this.IsGoToSocialAnnounceApproval() {
		return 7
	}
	if this.IsGoToSocialAnnounceAuthorization() {
		return 8
	}
	if this.IsGoToSocialAnnounceRequest() {
		return 9
	}
	if this.IsActivityStreamsApplication() {
		return 10
	}
	if this.IsActivityStreamsArrive() {
		return 11
	}
	if this.IsActivityStreamsArticle() {
		return 12
	}
	if this.IsFunkwhaleArtist() {
		return 13
	}
	if this.IsActivityStreamsAudio() {
		return 14
	}
	if this.IsActivityStreamsBlock() {
		return 15
	}
	if this.IsActivityStreamsCollection() {
		return 16
	}
	if this.IsActivityStreamsCollectionPage() {
		return 17
	}
	if this.IsActivityStreamsCreate() {
		return 18
	}
	if this.IsActivityStreamsDelete() {
		return 19
	}
	if this.IsActivityStreamsDislike() {
		return 20
	}
	if this.IsActivityStreamsDocument() {
		return 21
	}
	if this.IsTootEmoji() {
		return 22
	}
	if this.IsLitePubEmojiReact() {
		return 23
	}
	if this.IsActivityStreamsEvent() {
		return 24
	}
	if this.IsActivityStreamsFlag() {
		return 25
	}
	if this.IsActivityStreamsFollow() {
		return 26
	}
	if this.IsActivityStreamsGroup() {
		return 27
	}
	if this.IsTootHashtag() {
		return 28
	}
	if this.IsTootIdentityProof() {
		return 29
	}
	if this.IsActivityStreamsIgnore() {
		return 30
	}
	if this.IsActivityStreamsImage() {
		return 31
	}
	if this.IsActivityStreamsIntransitiveActivity() {
		return 32
	}
	if this.IsActivityStreamsInvite() {
		return 33
	}
	if this.IsActivityStreamsJoin() {
		return 34
	}
	if this.IsActivityStreamsLeave() {
		return 35
	}
	if this.IsFunkwhaleLibrary() {
		return 36
	}
	if this.IsActivityStreamsLike() {
		return 37
	}
	if this.IsGoToSocialLikeApproval() {
		return 38
	}
	if this.IsGoToSocialLikeAuthorization() {
		return 39
	}
	if this.IsGoToSocialLikeRequest() {
		return 40
	}
	if this.IsActivityStreamsListen() {
		return 41
	}
	if this.IsActivityStreamsMention() {
		return 42
	}
	if this.IsActivityStreamsMove() {
		return 43
	}
	if this.IsActivityStreamsNote() {
		return 44
	}
	if this.IsActivityStreamsOffer() {
		return 45
	}
	if this.IsActivityStreamsOrderedCollection() {
		return 46
	}
	if this.IsActivityStreamsOrderedCollectionPage() {
		return 47
	}
	if this.IsActivityStreamsOrganization() {
		return 48
	}
	if this.IsActivityStreamsPage() {
		return 49
	}
	if this.IsActivityStreamsPerson() {
		return 50
	}
	if this.IsActivityStreamsPlace() {
		return 51
	}
	if this.IsActivityStreamsProfile() {
		return 52
	}
	if this.IsSchemaPropertyValue() {
		return 53
	}
	if this.IsActivityStreamsQuestion() {
		return 54
	}
	if this.IsGoToSocialQuoteAuthorization() {
		return 55
	}
	if this.IsGoToSocialQuoteRequest() {
		return 56
	}
	if this.IsActivityStreamsRead() {
		return 57
	}
	if this.IsActivityStreamsReject() {
		return 58
	}
	if this.IsActivityStreamsRelationship() {
		return 59
	}
	if this.IsActivityStreamsRemove() {
		return 60
	}
	if this.IsGoToSocialReplyApproval() {
		return 61
	}
	if this.IsGoToSocialReplyAuthorization() {
		return 62
	}
	if this.IsGoToSocialReplyRequest() {
		return 63
	}
	if this.IsActivityStreamsService() {
		return 64
	}
	if this.IsActivityStreamsTentativeAccept() {
		return 65
	}
	if this.IsActivityStreamsTentativeReject() {
		return 66
	}
	if this.IsActivityStreamsTombstone() {
		return 67
	}
	if this.IsFunkwhaleTrack() {
		return 68
	}
	if this.IsActivityStreamsTravel() {
		return 69
	}
	if this.IsActivityStreamsUndo() {
		return 70
	}
	if this.IsActivityStreamsUpdate() {
		return 71
	}
	if this.IsActivityStreamsVideo() {
		return 72
	}
	if this.IsActivityStreamsView() {
		return 73
	}
	if this.IsIRI() {
		return -2
	}
	return -1
}

// LessThan compares two instances of this property with an arbitrary but stable
// comparison. Applications should not use this because it is only meant to
// help alternative implementations to go-fed to be able to normalize
// nonfunctional properties.
func (this ActivityStreamsSubjectProperty) LessThan(o vocab.ActivityStreamsSubjectProperty) bool {
	idx1 := this.KindIndex()
	idx2 := o.KindIndex()
	if idx1 < idx2 {
		return true
	} else if idx1 > idx2 {
		return false
	} else if this.IsActivityStreamsLink() {
		return this.GetActivityStreamsLink().LessThan(o.GetActivityStreamsLink())
	} else if this.IsActivityStreamsObject() {
		return this.GetActivityStreamsObject().LessThan(o.GetActivityStreamsObject())
	} else if this.IsActivityStreamsAccept() {
		return this.GetActivityStreamsAccept().LessThan(o.GetActivityStreamsAccept())
	} else if this.IsActivityStreamsActivity() {
		return this.GetActivityStreamsActivity().LessThan(o.GetActivityStreamsActivity())
	} else if this.IsActivityStreamsAdd() {
		return this.GetActivityStreamsAdd().LessThan(o.GetActivityStreamsAdd())
	} else if this.IsFunkwhaleAlbum() {
		return this.GetFunkwhaleAlbum().LessThan(o.GetFunkwhaleAlbum())
	} else if this.IsActivityStreamsAnnounce() {
		return this.GetActivityStreamsAnnounce().LessThan(o.GetActivityStreamsAnnounce())
	} else if this.IsGoToSocialAnnounceApproval() {
		return this.GetGoToSocialAnnounceApproval().LessThan(o.GetGoToSocialAnnounceApproval())
	} else if this.IsGoToSocialAnnounceAuthorization() {
		return this.GetGoToSocialAnnounceAuthorization().LessThan(o.GetGoToSocialAnnounceAuthorization())
	} else if this.IsGoToSocialAnnounceRequest() {
		return this.GetGoToSocialAnnounceRequest().LessThan(o.GetGoToSocialAnnounceRequest())
	} else if this.IsActivityStreamsApplication() {
		return this.GetActivityStreamsApplication().LessThan(o.GetActivityStreamsApplication())
	} else if this.IsActivityStreamsArrive() {
		return this.GetActivityStreamsArrive().LessThan(o.GetActivityStreamsArrive())
	} else if this.IsActivityStreamsArticle() {
		return this.GetActivityStreamsArticle().LessThan(o.GetActivityStreamsArticle())
	} else if this.IsFunkwhaleArtist() {
		return this.GetFunkwhaleArtist().LessThan(o.GetFunkwhaleArtist())
	} else if this.IsActivityStreamsAudio() {
		return this.GetActivityStreamsAudio().LessThan(o.GetActivityStreamsAudio())
	} else if this.IsActivityStreamsBlock() {
		return this.GetActivityStreamsBlock().LessThan(o.GetActivityStreamsBlock())
	} else if this.IsActivityStreamsCollection() {
		return this.GetActivityStreamsCollection().LessThan(o.GetActivityStreamsCollection())
	} else if this.IsActivityStreamsCollectionPage() {
		return this.GetActivityStreamsCollectionPage().LessThan(o.GetActivityStreamsCollectionPage())
	} else if this.IsActivityStreamsCreate() {
		return this.GetActivityStreamsCreate().LessThan(o.GetActivityStreamsCreate())
	} else if this.IsActivityStreamsDelete() {
		return this.GetActivityStreamsDelete().LessThan(o.GetActivityStreamsDelete())
	} else if this.IsActivityStreamsDislike() {
		return this.GetActivityStreamsDislike().LessThan(o.GetActivityStreamsDislike())
	} else if this.IsActivityStreamsDocument() {
		return this.GetActivityStreamsDocument().LessThan(o.GetActivityStreamsDocument())
	} else if this.IsTootEmoji() {
		return this.GetTootEmoji().LessThan(o.GetTootEmoji())
	} else if this.IsLitePubEmojiReact() {
		return this.GetLitePubEmojiReact().LessThan(o.GetLitePubEmojiReact())
	} else if this.IsActivityStreamsEvent() {
		return this.GetActivityStreamsEvent().LessThan(o.GetActivityStreamsEvent())
	} else if this.IsActivityStreamsFlag() {
		return this.GetActivityStreamsFlag().LessThan(o.GetActivityStreamsFlag())
	} else if this.IsActivityStreamsFollow() {
		return this.GetActivityStreamsFollow().LessThan(o.GetActivityStreamsFollow())
	} else if this.IsActivityStreamsGroup() {
		return this.GetActivityStreamsGroup().LessThan(o.GetActivityStreamsGroup())
	} else if this.IsTootHashtag() {
		return this.GetTootHashtag().LessThan(o.GetTootHashtag())
	} else if this.IsTootIdentityProof() {
		return this.GetTootIdentityProof().LessThan(o.GetTootIdentityProof())
	} else if this.IsActivityStreamsIgnore() {
		return this.GetActivityStreamsIgnore().LessThan(o.GetActivityStreamsIgnore())
	} else if this.IsActivityStreamsImage() {
		return this.GetActivityStreamsImage().LessThan(o.GetActivityStreamsImage())
	} else if this.IsActivityStreamsIntransitiveActivity() {
		return this.GetActivityStreamsIntransitiveActivity().LessThan(o.GetActivityStreamsIntransitiveActivity())
	} else if this.IsActivityStreamsInvite() {
		return this.GetActivityStreamsInvite().LessThan(o.GetActivityStreamsInvite())
	} else if this.IsActivityStreamsJoin() {
		return this.GetActivityStreamsJoin().LessThan(o.GetActivityStreamsJoin())
	} else if this.IsActivityStreamsLeave() {
		return this.GetActivityStreamsLeave().LessThan(o.GetActivityStreamsLeave())
	} else if this.IsFunkwhaleLibrary() {
		return this.GetFunkwhaleLibrary().LessThan(o.GetFunkwhaleLibrary())
	} else if this.IsActivityStreamsLike() {
		return this.GetActivityStreamsLike().LessThan(o.GetActivityStreamsLike())
	} else if this.IsGoToSocialLikeApproval() {
		return this.GetGoToSocialLikeApproval().LessThan(o.GetGoToSocialLikeApproval())
	} else if this.IsGoToSocialLikeAuthorization() {
		return this.GetGoToSocialLikeAuthorization().LessThan(o.GetGoToSocialLikeAuthorization())
	} else if this.IsGoToSocialLikeRequest() {
		return this.GetGoToSocialLikeRequest().LessThan(o.GetGoToSocialLikeRequest())
	} else if this.IsActivityStreamsListen() {
		return this.GetActivityStreamsListen().LessThan(o.GetActivityStreamsListen())
	} else if this.IsActivityStreamsMention() {
		return this.GetActivityStreamsMention().LessThan(o.GetActivityStreamsMention())
	} else if this.IsActivityStreamsMove() {
		return this.GetActivityStreamsMove().LessThan(o.GetActivityStreamsMove())
	} else if this.IsActivityStreamsNote() {
		return this.GetActivityStreamsNote().LessThan(o.GetActivityStreamsNote())
	} else if this.IsActivityStreamsOffer() {
		return this.GetActivityStreamsOffer().LessThan(o.GetActivityStreamsOffer())
	} else if this.IsActivityStreamsOrderedCollection() {
		return this.GetActivityStreamsOrderedCollection().LessThan(o.GetActivityStreamsOrderedCollection())
	} else if this.IsActivityStreamsOrderedCollectionPage() {
		return this.GetActivityStreamsOrderedCollectionPage().LessThan(o.GetActivityStreamsOrderedCollectionPage())
	} else if this.IsActivityStreamsOrganization() {
		return this.GetActivityStreamsOrganization().LessThan(o.GetActivityStreamsOrganization())
	} else if this.IsActivityStreamsPage() {
		return this.GetActivityStreamsPage().LessThan(o.GetActivityStreamsPage())
	} else if this.IsActivityStreamsPerson() {
		return this.GetActivityStreamsPerson().LessThan(o.GetActivityStreamsPerson())
	} else if this.IsActivityStreamsPlace() {
		return this.GetActivityStreamsPlace().LessThan(o.GetActivityStreamsPlace())
	} else if this.IsActivityStreamsProfile() {
		return this.GetActivityStreamsProfile().LessThan(o.GetActivityStreamsProfile())
	} else if this.IsSchemaPropertyValue() {
		return this.GetSchemaPropertyValue().LessThan(o.GetSchemaPropertyValue())
	} else if this.IsActivityStreamsQuestion() {
		return this.GetActivityStreamsQuestion().LessThan(o.GetActivityStreamsQuestion())
	} else if this.IsGoToSocialQuoteAuthorization() {
		return this.GetGoToSocialQuoteAuthorization().LessThan(o.GetGoToSocialQuoteAuthorization())
	} else if this.IsGoToSocialQuoteRequest() {
		return this.GetGoToSocialQuoteRequest().LessThan(o.GetGoToSocialQuoteRequest())
	} else if this.IsActivityStreamsRead() {
		return this.GetActivityStreamsRead().LessThan(o.GetActivityStreamsRead())
	} else if this.IsActivityStreamsReject() {
		return this.GetActivityStreamsReject().LessThan(o.GetActivityStreamsReject())
	} else if this.IsActivityStreamsRelationship() {
		return this.GetActivityStreamsRelationship().LessThan(o.GetActivityStreamsRelationship())
	} else if this.IsActivityStreamsRemove() {
		return this.GetActivityStreamsRemove().LessThan(o.GetActivityStreamsRemove())
	} else if this.IsGoToSocialReplyApproval() {
		return this.GetGoToSocialReplyApproval().LessThan(o.GetGoToSocialReplyApproval())
	} else if this.IsGoToSocialReplyAuthorization() {
		return this.GetGoToSocialReplyAuthorization().LessThan(o.GetGoToSocialReplyAuthorization())
	} else if this.IsGoToSocialReplyRequest() {
		return this.GetGoToSocialReplyRequest().LessThan(o.GetGoToSocialReplyRequest())
	} else if this.IsActivityStreamsService() {
		return this.GetActivityStreamsService().LessThan(o.GetActivityStreamsService())
	} else if this.IsActivityStreamsTentativeAccept() {
		return this.GetActivityStreamsTentativeAccept().LessThan(o.GetActivityStreamsTentativeAccept())
	} else if this.IsActivityStreamsTentativeReject() {
		return this.GetActivityStreamsTentativeReject().LessThan(o.GetActivityStreamsTentativeReject())
	} else if this.IsActivityStreamsTombstone() {
		return this.GetActivityStreamsTombstone().LessThan(o.GetActivityStreamsTombstone())
	} else if this.IsFunkwhaleTrack() {
		return this.GetFunkwhaleTrack().LessThan(o.GetFunkwhaleTrack())
	} else if this.IsActivityStreamsTravel() {
		return this.GetActivityStreamsTravel().LessThan(o.GetActivityStreamsTravel())
	} else if this.IsActivityStreamsUndo() {
		return this.GetActivityStreamsUndo().LessThan(o.GetActivityStreamsUndo())
	} else if this.IsActivityStreamsUpdate() {
		return this.GetActivityStreamsUpdate().LessThan(o.GetActivityStreamsUpdate())
	} else if this.IsActivityStreamsVideo() {
		return this.GetActivityStreamsVideo().LessThan(o.GetActivityStreamsVideo())
	} else if this.IsActivityStreamsView() {
		return this.GetActivityStreamsView().LessThan(o.GetActivityStreamsView())
	} else if this.IsIRI() {
		return this.iri.String() < o.GetIRI().String()
	}
	return false
}

// Name returns the name of this property: "subject".
func (this ActivityStreamsSubjectProperty) Name() string {
	if len(this.alias) > 0 {
		return this.alias + ":" + "subject"
	} else {
		return "subject"
	}
}

// Serialize converts this into an interface representation suitable for
// marshalling into a text or binary format. Applications should not need this
// function as most typical use cases serialize types instead of individual
// properties. It is exposed for alternatives to go-fed implementations to use.
func (this ActivityStreamsSubjectProperty) Serialize() (interface{}, error) {
	if this.IsActivityStreamsLink() {
		return this.GetActivityStreamsLink().Serialize()
	} else if this.IsActivityStreamsObject() {
		return this.GetActivityStreamsObject().Serialize()
	} else if this.IsActivityStreamsAccept() {
		return this.GetActivityStreamsAccept().Serialize()
	} else if this.IsActivityStreamsActivity() {
		return this.GetActivityStreamsActivity().Serialize()
	} else if this.IsActivityStreamsAdd() {
		return this.GetActivityStreamsAdd().Serialize()
	} else if this.IsFunkwhaleAlbum() {
		return this.GetFunkwhaleAlbum().Serialize()
	} else if this.IsActivityStreamsAnnounce() {
		return this.GetActivityStreamsAnnounce().Serialize()
	} else if this.IsGoToSocialAnnounceApproval() {
		return this.GetGoToSocialAnnounceApproval().Serialize()
	} else if this.IsGoToSocialAnnounceAuthorization() {
		return this.GetGoToSocialAnnounceAuthorization().Serialize()
	} else if this.IsGoToSocialAnnounceRequest() {
		return this.GetGoToSocialAnnounceRequest().Serialize()
	} else if this.IsActivityStreamsApplication() {
		return this.GetActivityStreamsApplication().Serialize()
	} else if this.IsActivityStreamsArrive() {
		return this.GetActivityStreamsArrive().Serialize()
	} else if this.IsActivityStreamsArticle() {
		return this.GetActivityStreamsArticle().Serialize()
	} else if this.IsFunkwhaleArtist() {
		return this.GetFunkwhaleArtist().Serialize()
	} else if this.IsActivityStreamsAudio() {
		return this.GetActivityStreamsAudio().Serialize()
	} else if this.IsActivityStreamsBlock() {
		return this.GetActivityStreamsBlock().Serialize()
	} else if this.IsActivityStreamsCollection() {
		return this.GetActivityStreamsCollection().Serialize()
	} else if this.IsActivityStreamsCollectionPage() {
		return this.GetActivityStreamsCollectionPage().Serialize()
	} else if this.IsActivityStreamsCreate() {
		return this.GetActivityStreamsCreate().Serialize()
	} else if this.IsActivityStreamsDelete() {
		return this.GetActivityStreamsDelete().Serialize()
	} else if this.IsActivityStreamsDislike() {
		return this.GetActivityStreamsDislike().Serialize()
	} else if this.IsActivityStreamsDocument() {
		return this.GetActivityStreamsDocument().Serialize()
	} else if this.IsTootEmoji() {
		return this.GetTootEmoji().Serialize()
	} else if this.IsLitePubEmojiReact() {
		return this.GetLitePubEmojiReact().Serialize()
	} else if this.IsActivityStreamsEvent() {
		return this.GetActivityStreamsEvent().Serialize()
	} else if this.IsActivityStreamsFlag() {
		return this.GetActivityStreamsFlag().Serialize()
	} else if this.IsActivityStreamsFollow() {
		return this.GetActivityStreamsFollow().Serialize()
	} else if this.IsActivityStreamsGroup() {
		return this.GetActivityStreamsGroup().Serialize()
	} else if this.IsTootHashtag() {
		return this.GetTootHashtag().Serialize()
	} else if this.IsTootIdentityProof() {
		return this.GetTootIdentityProof().Serialize()
	} else if this.IsActivityStreamsIgnore() {
		return this.GetActivityStreamsIgnore().Serialize()
	} else if this.IsActivityStreamsImage() {
		return this.GetActivityStreamsImage().Serialize()
	} else if this.IsActivityStreamsIntransitiveActivity() {
		return this.GetActivityStreamsIntransitiveActivity().Serialize()
	} else if this.IsActivityStreamsInvite() {
		return this.GetActivityStreamsInvite().Serialize()
	} else if this.IsActivityStreamsJoin() {
		return this.GetActivityStreamsJoin().Serialize()
	} else if this.IsActivityStreamsLeave() {
		return this.GetActivityStreamsLeave().Serialize()
	} else if this.IsFunkwhaleLibrary() {
		return this.GetFunkwhaleLibrary().Serialize()
	} else if this.IsActivityStreamsLike() {
		return this.GetActivityStreamsLike().Serialize()
	} else if this.IsGoToSocialLikeApproval() {
		return this.GetGoToSocialLikeApproval().Serialize()
	} else if this.IsGoToSocialLikeAuthorization() {
		return this.GetGoToSocialLikeAuthorization().Serialize()
	} else if this.IsGoToSocialLikeRequest() {
		return this.GetGoToSocialLikeRequest().Serialize()
	} else if this.IsActivityStreamsListen() {
		return this.GetActivityStreamsListen().Serialize()
	} else if this.IsActivityStreamsMention() {
		return this.GetActivityStreamsMention().Serialize()
	} else if this.IsActivityStreamsMove() {
		return this.GetActivityStreamsMove().Serialize()
	} else if this.IsActivityStreamsNote() {
		return this.GetActivityStreamsNote().Serialize()
	} else if this.IsActivityStreamsOffer() {
		return this.GetActivityStreamsOffer().Serialize()
	} else if this.IsActivityStreamsOrderedCollection() {
		return this.GetActivityStreamsOrderedCollection().Serialize()
	} else if this.IsActivityStreamsOrderedCollectionPage() {
		return this.GetActivityStreamsOrderedCollectionPage().Serialize()
	} else if this.IsActivityStreamsOrganization() {
		return this.GetActivityStreamsOrganization().Serialize()
	} else if this.IsActivityStreamsPage() {
		return this.GetActivityStreamsPage().Serialize()
	} else if this.IsActivityStreamsPerson() {
		return this.GetActivityStreamsPerson().Serialize()
	} else if this.IsActivityStreamsPlace() {
		return this.GetActivityStreamsPlace().Serialize()
	} else if this.IsActivityStreamsProfile() {
		return this.GetActivityStreamsProfile().Serialize()
	} else if this.IsSchemaPropertyValue() {
		return this.GetSchemaPropertyValue().Serialize()
	} else if this.IsActivityStreamsQuestion() {
		return this.GetActivityStreamsQuestion().Serialize()
	} else if this.IsGoToSocialQuoteAuthorization() {
		return this.GetGoToSocialQuoteAuthorization().Serialize()
	} else if this.IsGoToSocialQuoteRequest() {
		return this.GetGoToSocialQuoteRequest().Serialize()
	} else if this.IsActivityStreamsRead() {
		return this.GetActivityStreamsRead().Serialize()
	} else if this.IsActivityStreamsReject() {
		return this.GetActivityStreamsReject().Serialize()
	} else if this.IsActivityStreamsRelationship() {
		return this.GetActivityStreamsRelationship().Serialize()
	} else if this.IsActivityStreamsRemove() {
		return this.GetActivityStreamsRemove().Serialize()
	} else if this.IsGoToSocialReplyApproval() {
		return this.GetGoToSocialReplyApproval().Serialize()
	} else if this.IsGoToSocialReplyAuthorization() {
		return this.GetGoToSocialReplyAuthorization().Serialize()
	} else if this.IsGoToSocialReplyRequest() {
		return this.GetGoToSocialReplyRequest().Serialize()
	} else if this.IsActivityStreamsService() {
		return this.GetActivityStreamsService().Serialize()
	} else if this.IsActivityStreamsTentativeAccept() {
		return this.GetActivityStreamsTentativeAccept().Serialize()
	} else if this.IsActivityStreamsTentativeReject() {
		return this.GetActivityStreamsTentativeReject().Serialize()
	} else if this.IsActivityStreamsTombstone() {
		return this.GetActivityStreamsTombstone().Serialize()
	} else if this.IsFunkwhaleTrack() {
		return this.GetFunkwhaleTrack().Serialize()
	} else if this.IsActivityStreamsTravel() {
		return this.GetActivityStreamsTravel().Serialize()
	} else if this.IsActivityStreamsUndo() {
		return this.GetActivityStreamsUndo().Serialize()
	} else if this.IsActivityStreamsUpdate() {
		return this.GetActivityStreamsUpdate().Serialize()
	} else if this.IsActivityStreamsVideo() {
		return this.GetActivityStreamsVideo().Serialize()
	} else if this.IsActivityStreamsView() {
		return this.GetActivityStreamsView().Serialize()
	} else if this.IsIRI() {
		return this.iri.String(), nil
	}
	return this.unknown, nil
}

// SetActivityStreamsAccept sets the value of this property. Calling
// IsActivityStreamsAccept afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsAccept(v vocab.ActivityStreamsAccept) {
	this.Clear()
	this.activitystreamsAcceptMember = v
}

// SetActivityStreamsActivity sets the value of this property. Calling
// IsActivityStreamsActivity afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsActivity(v vocab.ActivityStreamsActivity) {
	this.Clear()
	this.activitystreamsActivityMember = v
}

// SetActivityStreamsAdd sets the value of this property. Calling
// IsActivityStreamsAdd afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsAdd(v vocab.ActivityStreamsAdd) {
	this.Clear()
	this.activitystreamsAddMember = v
}

// SetActivityStreamsAnnounce sets the value of this property. Calling
// IsActivityStreamsAnnounce afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsAnnounce(v vocab.ActivityStreamsAnnounce) {
	this.Clear()
	this.activitystreamsAnnounceMember = v
}

// SetActivityStreamsApplication sets the value of this property. Calling
// IsActivityStreamsApplication afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsApplication(v vocab.ActivityStreamsApplication) {
	this.Clear()
	this.activitystreamsApplicationMember = v
}

// SetActivityStreamsArrive sets the value of this property. Calling
// IsActivityStreamsArrive afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsArrive(v vocab.ActivityStreamsArrive) {
	this.Clear()
	this.activitystreamsArriveMember = v
}

// SetActivityStreamsArticle sets the value of this property. Calling
// IsActivityStreamsArticle afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsArticle(v vocab.ActivityStreamsArticle) {
	this.Clear()
	this.activitystreamsArticleMember = v
}

// SetActivityStreamsAudio sets the value of this property. Calling
// IsActivityStreamsAudio afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsAudio(v vocab.ActivityStreamsAudio) {
	this.Clear()
	this.activitystreamsAudioMember = v
}

// SetActivityStreamsBlock sets the value of this property. Calling
// IsActivityStreamsBlock afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsBlock(v vocab.ActivityStreamsBlock) {
	this.Clear()
	this.activitystreamsBlockMember = v
}

// SetActivityStreamsCollection sets the value of this property. Calling
// IsActivityStreamsCollection afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsCollection(v vocab.ActivityStreamsCollection) {
	this.Clear()
	this.activitystreamsCollectionMember = v
}

// SetActivityStreamsCollectionPage sets the value of this property. Calling
// IsActivityStreamsCollectionPage afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsCollectionPage(v vocab.ActivityStreamsCollectionPage) {
	this.Clear()
	this.activitystreamsCollectionPageMember = v
}

// SetActivityStreamsCreate sets the value of this property. Calling
// IsActivityStreamsCreate afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsCreate(v vocab.ActivityStreamsCreate) {
	this.Clear()
	this.activitystreamsCreateMember = v
}

// SetActivityStreamsDelete sets the value of this property. Calling
// IsActivityStreamsDelete afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsDelete(v vocab.ActivityStreamsDelete) {
	this.Clear()
	this.activitystreamsDeleteMember = v
}

// SetActivityStreamsDislike sets the value of this property. Calling
// IsActivityStreamsDislike afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsDislike(v vocab.ActivityStreamsDislike) {
	this.Clear()
	this.activitystreamsDislikeMember = v
}

// SetActivityStreamsDocument sets the value of this property. Calling
// IsActivityStreamsDocument afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsDocument(v vocab.ActivityStreamsDocument) {
	this.Clear()
	this.activitystreamsDocumentMember = v
}

// SetActivityStreamsEvent sets the value of this property. Calling
// IsActivityStreamsEvent afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsEvent(v vocab.ActivityStreamsEvent) {
	this.Clear()
	this.activitystreamsEventMember = v
}

// SetActivityStreamsFlag sets the value of this property. Calling
// IsActivityStreamsFlag afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsFlag(v vocab.ActivityStreamsFlag) {
	this.Clear()
	this.activitystreamsFlagMember = v
}

// SetActivityStreamsFollow sets the value of this property. Calling
// IsActivityStreamsFollow afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsFollow(v vocab.ActivityStreamsFollow) {
	this.Clear()
	this.activitystreamsFollowMember = v
}

// SetActivityStreamsGroup sets the value of this property. Calling
// IsActivityStreamsGroup afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsGroup(v vocab.ActivityStreamsGroup) {
	this.Clear()
	this.activitystreamsGroupMember = v
}

// SetActivityStreamsIgnore sets the value of this property. Calling
// IsActivityStreamsIgnore afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsIgnore(v vocab.ActivityStreamsIgnore) {
	this.Clear()
	this.activitystreamsIgnoreMember = v
}

// SetActivityStreamsImage sets the value of this property. Calling
// IsActivityStreamsImage afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsImage(v vocab.ActivityStreamsImage) {
	this.Clear()
	this.activitystreamsImageMember = v
}

// SetActivityStreamsIntransitiveActivity sets the value of this property. Calling
// IsActivityStreamsIntransitiveActivity afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsIntransitiveActivity(v vocab.ActivityStreamsIntransitiveActivity) {
	this.Clear()
	this.activitystreamsIntransitiveActivityMember = v
}

// SetActivityStreamsInvite sets the value of this property. Calling
// IsActivityStreamsInvite afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsInvite(v vocab.ActivityStreamsInvite) {
	this.Clear()
	this.activitystreamsInviteMember = v
}

// SetActivityStreamsJoin sets the value of this property. Calling
// IsActivityStreamsJoin afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsJoin(v vocab.ActivityStreamsJoin) {
	this.Clear()
	this.activitystreamsJoinMember = v
}

// SetActivityStreamsLeave sets the value of this property. Calling
// IsActivityStreamsLeave afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsLeave(v vocab.ActivityStreamsLeave) {
	this.Clear()
	this.activitystreamsLeaveMember = v
}

// SetActivityStreamsLike sets the value of this property. Calling
// IsActivityStreamsLike afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsLike(v vocab.ActivityStreamsLike) {
	this.Clear()
	this.activitystreamsLikeMember = v
}

// SetActivityStreamsLink sets the value of this property. Calling
// IsActivityStreamsLink afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsLink(v vocab.ActivityStreamsLink) {
	this.Clear()
	this.activitystreamsLinkMember = v
}

// SetActivityStreamsListen sets the value of this property. Calling
// IsActivityStreamsListen afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsListen(v vocab.ActivityStreamsListen) {
	this.Clear()
	this.activitystreamsListenMember = v
}

// SetActivityStreamsMention sets the value of this property. Calling
// IsActivityStreamsMention afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsMention(v vocab.ActivityStreamsMention) {
	this.Clear()
	this.activitystreamsMentionMember = v
}

// SetActivityStreamsMove sets the value of this property. Calling
// IsActivityStreamsMove afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsMove(v vocab.ActivityStreamsMove) {
	this.Clear()
	this.activitystreamsMoveMember = v
}

// SetActivityStreamsNote sets the value of this property. Calling
// IsActivityStreamsNote afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsNote(v vocab.ActivityStreamsNote) {
	this.Clear()
	this.activitystreamsNoteMember = v
}

// SetActivityStreamsObject sets the value of this property. Calling
// IsActivityStreamsObject afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsObject(v vocab.ActivityStreamsObject) {
	this.Clear()
	this.activitystreamsObjectMember = v
}

// SetActivityStreamsOffer sets the value of this property. Calling
// IsActivityStreamsOffer afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsOffer(v vocab.ActivityStreamsOffer) {
	this.Clear()
	this.activitystreamsOfferMember = v
}

// SetActivityStreamsOrderedCollection sets the value of this property. Calling
// IsActivityStreamsOrderedCollection afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsOrderedCollection(v vocab.ActivityStreamsOrderedCollection) {
	this.Clear()
	this.activitystreamsOrderedCollectionMember = v
}

// SetActivityStreamsOrderedCollectionPage sets the value of this property.
// Calling IsActivityStreamsOrderedCollectionPage afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsOrderedCollectionPage(v vocab.ActivityStreamsOrderedCollectionPage) {
	this.Clear()
	this.activitystreamsOrderedCollectionPageMember = v
}

// SetActivityStreamsOrganization sets the value of this property. Calling
// IsActivityStreamsOrganization afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsOrganization(v vocab.ActivityStreamsOrganization) {
	this.Clear()
	this.activitystreamsOrganizationMember = v
}

// SetActivityStreamsPage sets the value of this property. Calling
// IsActivityStreamsPage afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsPage(v vocab.ActivityStreamsPage) {
	this.Clear()
	this.activitystreamsPageMember = v
}

// SetActivityStreamsPerson sets the value of this property. Calling
// IsActivityStreamsPerson afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsPerson(v vocab.ActivityStreamsPerson) {
	this.Clear()
	this.activitystreamsPersonMember = v
}

// SetActivityStreamsPlace sets the value of this property. Calling
// IsActivityStreamsPlace afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsPlace(v vocab.ActivityStreamsPlace) {
	this.Clear()
	this.activitystreamsPlaceMember = v
}

// SetActivityStreamsProfile sets the value of this property. Calling
// IsActivityStreamsProfile afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsProfile(v vocab.ActivityStreamsProfile) {
	this.Clear()
	this.activitystreamsProfileMember = v
}

// SetActivityStreamsQuestion sets the value of this property. Calling
// IsActivityStreamsQuestion afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsQuestion(v vocab.ActivityStreamsQuestion) {
	this.Clear()
	this.activitystreamsQuestionMember = v
}

// SetActivityStreamsRead sets the value of this property. Calling
// IsActivityStreamsRead afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsRead(v vocab.ActivityStreamsRead) {
	this.Clear()
	this.activitystreamsReadMember = v
}

// SetActivityStreamsReject sets the value of this property. Calling
// IsActivityStreamsReject afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsReject(v vocab.ActivityStreamsReject) {
	this.Clear()
	this.activitystreamsRejectMember = v
}

// SetActivityStreamsRelationship sets the value of this property. Calling
// IsActivityStreamsRelationship afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsRelationship(v vocab.ActivityStreamsRelationship) {
	this.Clear()
	this.activitystreamsRelationshipMember = v
}

// SetActivityStreamsRemove sets the value of this property. Calling
// IsActivityStreamsRemove afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsRemove(v vocab.ActivityStreamsRemove) {
	this.Clear()
	this.activitystreamsRemoveMember = v
}

// SetActivityStreamsService sets the value of this property. Calling
// IsActivityStreamsService afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsService(v vocab.ActivityStreamsService) {
	this.Clear()
	this.activitystreamsServiceMember = v
}

// SetActivityStreamsTentativeAccept sets the value of this property. Calling
// IsActivityStreamsTentativeAccept afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsTentativeAccept(v vocab.ActivityStreamsTentativeAccept) {
	this.Clear()
	this.activitystreamsTentativeAcceptMember = v
}

// SetActivityStreamsTentativeReject sets the value of this property. Calling
// IsActivityStreamsTentativeReject afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsTentativeReject(v vocab.ActivityStreamsTentativeReject) {
	this.Clear()
	this.activitystreamsTentativeRejectMember = v
}

// SetActivityStreamsTombstone sets the value of this property. Calling
// IsActivityStreamsTombstone afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsTombstone(v vocab.ActivityStreamsTombstone) {
	this.Clear()
	this.activitystreamsTombstoneMember = v
}

// SetActivityStreamsTravel sets the value of this property. Calling
// IsActivityStreamsTravel afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsTravel(v vocab.ActivityStreamsTravel) {
	this.Clear()
	this.activitystreamsTravelMember = v
}

// SetActivityStreamsUndo sets the value of this property. Calling
// IsActivityStreamsUndo afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsUndo(v vocab.ActivityStreamsUndo) {
	this.Clear()
	this.activitystreamsUndoMember = v
}

// SetActivityStreamsUpdate sets the value of this property. Calling
// IsActivityStreamsUpdate afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsUpdate(v vocab.ActivityStreamsUpdate) {
	this.Clear()
	this.activitystreamsUpdateMember = v
}

// SetActivityStreamsVideo sets the value of this property. Calling
// IsActivityStreamsVideo afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsVideo(v vocab.ActivityStreamsVideo) {
	this.Clear()
	this.activitystreamsVideoMember = v
}

// SetActivityStreamsView sets the value of this property. Calling
// IsActivityStreamsView afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetActivityStreamsView(v vocab.ActivityStreamsView) {
	this.Clear()
	this.activitystreamsViewMember = v
}

// SetFunkwhaleAlbum sets the value of this property. Calling IsFunkwhaleAlbum
// afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetFunkwhaleAlbum(v vocab.FunkwhaleAlbum) {
	this.Clear()
	this.funkwhaleAlbumMember = v
}

// SetFunkwhaleArtist sets the value of this property. Calling IsFunkwhaleArtist
// afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetFunkwhaleArtist(v vocab.FunkwhaleArtist) {
	this.Clear()
	this.funkwhaleArtistMember = v
}

// SetFunkwhaleLibrary sets the value of this property. Calling IsFunkwhaleLibrary
// afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetFunkwhaleLibrary(v vocab.FunkwhaleLibrary) {
	this.Clear()
	this.funkwhaleLibraryMember = v
}

// SetFunkwhaleTrack sets the value of this property. Calling IsFunkwhaleTrack
// afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetFunkwhaleTrack(v vocab.FunkwhaleTrack) {
	this.Clear()
	this.funkwhaleTrackMember = v
}

// SetGoToSocialAnnounceApproval sets the value of this property. Calling
// IsGoToSocialAnnounceApproval afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialAnnounceApproval(v vocab.GoToSocialAnnounceApproval) {
	this.Clear()
	this.gotosocialAnnounceApprovalMember = v
}

// SetGoToSocialAnnounceAuthorization sets the value of this property. Calling
// IsGoToSocialAnnounceAuthorization afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialAnnounceAuthorization(v vocab.GoToSocialAnnounceAuthorization) {
	this.Clear()
	this.gotosocialAnnounceAuthorizationMember = v
}

// SetGoToSocialAnnounceRequest sets the value of this property. Calling
// IsGoToSocialAnnounceRequest afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialAnnounceRequest(v vocab.GoToSocialAnnounceRequest) {
	this.Clear()
	this.gotosocialAnnounceRequestMember = v
}

// SetGoToSocialLikeApproval sets the value of this property. Calling
// IsGoToSocialLikeApproval afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialLikeApproval(v vocab.GoToSocialLikeApproval) {
	this.Clear()
	this.gotosocialLikeApprovalMember = v
}

// SetGoToSocialLikeAuthorization sets the value of this property. Calling
// IsGoToSocialLikeAuthorization afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialLikeAuthorization(v vocab.GoToSocialLikeAuthorization) {
	this.Clear()
	this.gotosocialLikeAuthorizationMember = v
}

// SetGoToSocialLikeRequest sets the value of this property. Calling
// IsGoToSocialLikeRequest afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialLikeRequest(v vocab.GoToSocialLikeRequest) {
	this.Clear()
	this.gotosocialLikeRequestMember = v
}

// SetGoToSocialQuoteAuthorization sets the value of this property. Calling
// IsGoToSocialQuoteAuthorization afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialQuoteAuthorization(v vocab.GoToSocialQuoteAuthorization) {
	this.Clear()
	this.gotosocialQuoteAuthorizationMember = v
}

// SetGoToSocialQuoteRequest sets the value of this property. Calling
// IsGoToSocialQuoteRequest afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialQuoteRequest(v vocab.GoToSocialQuoteRequest) {
	this.Clear()
	this.gotosocialQuoteRequestMember = v
}

// SetGoToSocialReplyApproval sets the value of this property. Calling
// IsGoToSocialReplyApproval afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialReplyApproval(v vocab.GoToSocialReplyApproval) {
	this.Clear()
	this.gotosocialReplyApprovalMember = v
}

// SetGoToSocialReplyAuthorization sets the value of this property. Calling
// IsGoToSocialReplyAuthorization afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialReplyAuthorization(v vocab.GoToSocialReplyAuthorization) {
	this.Clear()
	this.gotosocialReplyAuthorizationMember = v
}

// SetGoToSocialReplyRequest sets the value of this property. Calling
// IsGoToSocialReplyRequest afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetGoToSocialReplyRequest(v vocab.GoToSocialReplyRequest) {
	this.Clear()
	this.gotosocialReplyRequestMember = v
}

// SetIRI sets the value of this property. Calling IsIRI afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetIRI(v *url.URL) {
	this.Clear()
	this.iri = v
}

// SetLitePubEmojiReact sets the value of this property. Calling
// IsLitePubEmojiReact afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetLitePubEmojiReact(v vocab.LitePubEmojiReact) {
	this.Clear()
	this.litepubEmojiReactMember = v
}

// SetSchemaPropertyValue sets the value of this property. Calling
// IsSchemaPropertyValue afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetSchemaPropertyValue(v vocab.SchemaPropertyValue) {
	this.Clear()
	this.schemaPropertyValueMember = v
}

// SetTootEmoji sets the value of this property. Calling IsTootEmoji afterwards
// returns true.
func (this *ActivityStreamsSubjectProperty) SetTootEmoji(v vocab.TootEmoji) {
	this.Clear()
	this.tootEmojiMember = v
}

// SetTootHashtag sets the value of this property. Calling IsTootHashtag
// afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetTootHashtag(v vocab.TootHashtag) {
	this.Clear()
	this.tootHashtagMember = v
}

// SetTootIdentityProof sets the value of this property. Calling
// IsTootIdentityProof afterwards returns true.
func (this *ActivityStreamsSubjectProperty) SetTootIdentityProof(v vocab.TootIdentityProof) {
	this.Clear()
	this.tootIdentityProofMember = v
}

// SetType attempts to set the property for the arbitrary type. Returns an error
// if it is not a valid type to set on this property.
func (this *ActivityStreamsSubjectProperty) SetType(t vocab.Type) error {
	if v, ok := t.(vocab.ActivityStreamsLink); ok {
		this.SetActivityStreamsLink(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsObject); ok {
		this.SetActivityStreamsObject(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsAccept); ok {
		this.SetActivityStreamsAccept(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsActivity); ok {
		this.SetActivityStreamsActivity(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsAdd); ok {
		this.SetActivityStreamsAdd(v)
		return nil
	}
	if v, ok := t.(vocab.FunkwhaleAlbum); ok {
		this.SetFunkwhaleAlbum(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsAnnounce); ok {
		this.SetActivityStreamsAnnounce(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialAnnounceApproval); ok {
		this.SetGoToSocialAnnounceApproval(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialAnnounceAuthorization); ok {
		this.SetGoToSocialAnnounceAuthorization(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialAnnounceRequest); ok {
		this.SetGoToSocialAnnounceRequest(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsApplication); ok {
		this.SetActivityStreamsApplication(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsArrive); ok {
		this.SetActivityStreamsArrive(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsArticle); ok {
		this.SetActivityStreamsArticle(v)
		return nil
	}
	if v, ok := t.(vocab.FunkwhaleArtist); ok {
		this.SetFunkwhaleArtist(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsAudio); ok {
		this.SetActivityStreamsAudio(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsBlock); ok {
		this.SetActivityStreamsBlock(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsCollection); ok {
		this.SetActivityStreamsCollection(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsCollectionPage); ok {
		this.SetActivityStreamsCollectionPage(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsCreate); ok {
		this.SetActivityStreamsCreate(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsDelete); ok {
		this.SetActivityStreamsDelete(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsDislike); ok {
		this.SetActivityStreamsDislike(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsDocument); ok {
		this.SetActivityStreamsDocument(v)
		return nil
	}
	if v, ok := t.(vocab.TootEmoji); ok {
		this.SetTootEmoji(v)
		return nil
	}
	if v, ok := t.(vocab.LitePubEmojiReact); ok {
		this.SetLitePubEmojiReact(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsEvent); ok {
		this.SetActivityStreamsEvent(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsFlag); ok {
		this.SetActivityStreamsFlag(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsFollow); ok {
		this.SetActivityStreamsFollow(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsGroup); ok {
		this.SetActivityStreamsGroup(v)
		return nil
	}
	if v, ok := t.(vocab.TootHashtag); ok {
		this.SetTootHashtag(v)
		return nil
	}
	if v, ok := t.(vocab.TootIdentityProof); ok {
		this.SetTootIdentityProof(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsIgnore); ok {
		this.SetActivityStreamsIgnore(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsImage); ok {
		this.SetActivityStreamsImage(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsIntransitiveActivity); ok {
		this.SetActivityStreamsIntransitiveActivity(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsInvite); ok {
		this.SetActivityStreamsInvite(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsJoin); ok {
		this.SetActivityStreamsJoin(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsLeave); ok {
		this.SetActivityStreamsLeave(v)
		return nil
	}
	if v, ok := t.(vocab.FunkwhaleLibrary); ok {
		this.SetFunkwhaleLibrary(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsLike); ok {
		this.SetActivityStreamsLike(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialLikeApproval); ok {
		this.SetGoToSocialLikeApproval(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialLikeAuthorization); ok {
		this.SetGoToSocialLikeAuthorization(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialLikeRequest); ok {
		this.SetGoToSocialLikeRequest(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsListen); ok {
		this.SetActivityStreamsListen(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsMention); ok {
		this.SetActivityStreamsMention(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsMove); ok {
		this.SetActivityStreamsMove(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsNote); ok {
		this.SetActivityStreamsNote(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsOffer); ok {
		this.SetActivityStreamsOffer(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsOrderedCollection); ok {
		this.SetActivityStreamsOrderedCollection(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsOrderedCollectionPage); ok {
		this.SetActivityStreamsOrderedCollectionPage(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsOrganization); ok {
		this.SetActivityStreamsOrganization(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsPage); ok {
		this.SetActivityStreamsPage(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsPerson); ok {
		this.SetActivityStreamsPerson(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsPlace); ok {
		this.SetActivityStreamsPlace(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsProfile); ok {
		this.SetActivityStreamsProfile(v)
		return nil
	}
	if v, ok := t.(vocab.SchemaPropertyValue); ok {
		this.SetSchemaPropertyValue(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsQuestion); ok {
		this.SetActivityStreamsQuestion(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialQuoteAuthorization); ok {
		this.SetGoToSocialQuoteAuthorization(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialQuoteRequest); ok {
		this.SetGoToSocialQuoteRequest(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsRead); ok {
		this.SetActivityStreamsRead(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsReject); ok {
		this.SetActivityStreamsReject(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsRelationship); ok {
		this.SetActivityStreamsRelationship(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsRemove); ok {
		this.SetActivityStreamsRemove(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialReplyApproval); ok {
		this.SetGoToSocialReplyApproval(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialReplyAuthorization); ok {
		this.SetGoToSocialReplyAuthorization(v)
		return nil
	}
	if v, ok := t.(vocab.GoToSocialReplyRequest); ok {
		this.SetGoToSocialReplyRequest(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsService); ok {
		this.SetActivityStreamsService(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsTentativeAccept); ok {
		this.SetActivityStreamsTentativeAccept(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsTentativeReject); ok {
		this.SetActivityStreamsTentativeReject(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsTombstone); ok {
		this.SetActivityStreamsTombstone(v)
		return nil
	}
	if v, ok := t.(vocab.FunkwhaleTrack); ok {
		this.SetFunkwhaleTrack(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsTravel); ok {
		this.SetActivityStreamsTravel(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsUndo); ok {
		this.SetActivityStreamsUndo(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsUpdate); ok {
		this.SetActivityStreamsUpdate(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsVideo); ok {
		this.SetActivityStreamsVideo(v)
		return nil
	}
	if v, ok := t.(vocab.ActivityStreamsView); ok {
		this.SetActivityStreamsView(v)
		return nil
	}

	return fmt.Errorf("illegal type to set on subject property: %T", t)
}
