func (this *ForgeFedDependsOnPropertyIterator) SetIRI(v *url.URL) {
	this.clear()
	this.iri = v
}
SetIRI sets the value of this property. Calling IsIRI afterwards will return
true.
package propertydependson
import (
	"fmt"
	vocab "github.com/go-fed/activity/streams/vocab"
	"net/url"
)
type ForgeFedDependsOnPropertyIterator struct {
	forgefedTicketMember vocab.ForgeFedTicket
	unknown              interface{}
	iri                  *url.URL
	alias                string
	myIdx                int
	parent               vocab.ForgeFedDependsOnProperty
}
func NewForgeFedDependsOnPropertyIterator() *ForgeFedDependsOnPropertyIterator {
	return &ForgeFedDependsOnPropertyIterator{alias: ""}
}
func deserializeForgeFedDependsOnPropertyIterator(i interface{}, aliasMap map[string]string) (*ForgeFedDependsOnPropertyIterator, error) {
	alias := ""
	if a, ok := aliasMap["https://forgefed.peers.community/ns"]; ok {
		alias = a
	}
	if s, ok := i.(string); ok {
		u, err := url.Parse(s)
		if err == nil && len(u.Scheme) > 0 {
			this := &ForgeFedDependsOnPropertyIterator{
				alias: alias,
				iri:   u,
			}
			return this, nil
		}
	}
	if m, ok := i.(map[string]interface{}); ok {
		if v, err := mgr.DeserializeTicketForgeFed()(m, aliasMap); err == nil {
			this := &ForgeFedDependsOnPropertyIterator{
				alias:                alias,
				forgefedTicketMember: v,
			}
			return this, nil
		}
	}
	this := &ForgeFedDependsOnPropertyIterator{
		alias:   alias,
		unknown: i,
	}
	return this, nil
}
func (this ForgeFedDependsOnPropertyIterator) Get() vocab.ForgeFedTicket {
	return this.forgefedTicketMember
}
func (this ForgeFedDependsOnPropertyIterator) GetIRI() *url.URL {
	return this.iri
}
func (this ForgeFedDependsOnPropertyIterator) GetType() vocab.Type {
	if this.IsForgeFedTicket() {
		return this.Get()
	}
	return nil
}
func (this ForgeFedDependsOnPropertyIterator) HasAny() bool {
	return this.IsForgeFedTicket() || this.iri != nil
}
func (this ForgeFedDependsOnPropertyIterator) IsForgeFedTicket() bool {
	return this.forgefedTicketMember != nil
}
func (this ForgeFedDependsOnPropertyIterator) IsIRI() bool {
	return this.iri != nil
}
func (this ForgeFedDependsOnPropertyIterator) JSONLDContext() map[string]string {
	m := map[string]string{"https://forgefed.peers.community/ns": this.alias}
	var child map[string]string
	if this.IsForgeFedTicket() {
		child = this.Get().JSONLDContext()
	}
	for k, v := range child {
		m[k] = v
	}
	return m
}
func (this ForgeFedDependsOnPropertyIterator) KindIndex() int {
	if this.IsForgeFedTicket() {
		return 0
	}
	if this.IsIRI() {
		return -2
	}
	return -1
}
func (this ForgeFedDependsOnPropertyIterator) LessThan(o vocab.ForgeFedDependsOnPropertyIterator) bool {
	if this.IsIRI() && o.IsIRI() {
		return this.iri.String() < o.GetIRI().String()
	} else if this.IsIRI() {
		return true
	} else if o.IsIRI() {
		return false
	}
	if !this.IsForgeFedTicket() && !o.IsForgeFedTicket() {
		return false
	} else if this.IsForgeFedTicket() && !o.IsForgeFedTicket() {
		return false
	} else if !this.IsForgeFedTicket() && o.IsForgeFedTicket() {
		return true
	} else {
		return this.Get().LessThan(o.Get())
	}
}
func (this ForgeFedDependsOnPropertyIterator) Name() string {
	if len(this.alias) > 0 {
		return this.alias + ":" + "ForgeFedDependsOn"
	} else {
		return "ForgeFedDependsOn"
	}
}
func (this ForgeFedDependsOnPropertyIterator) Next() vocab.ForgeFedDependsOnPropertyIterator {
	if this.myIdx+1 >= this.parent.Len() {
		return nil
	} else {
		return this.parent.At(this.myIdx + 1)
	}
}
func (this ForgeFedDependsOnPropertyIterator) Prev() vocab.ForgeFedDependsOnPropertyIterator {
	if this.myIdx-1 < 0 {
		return nil
	} else {
		return this.parent.At(this.myIdx - 1)
	}
}
func (this *ForgeFedDependsOnPropertyIterator) Set(v vocab.ForgeFedTicket) {
	this.clear()
	this.forgefedTicketMember = v
}