func (this *SipURIImpl) GetQheaders() *core.NameValueList {
	return this.qheaders
}
Accessor forSIPObjects
@return Get the query headers (that appear after the ? in
the URL)
package address
import (
	"bytes"
	"container/list"
	"errors"
	"sip/core"
	"strconv"
	"strings"
)
type SipURIImpl struct {
	URIImpl
	authority *Authority
	uriParms *core.NameValueList
	qheaders *core.NameValueList
	telephoneSubscriber *TelephoneNumber
}
func NewSipURIImpl() *SipURIImpl {
	this := &SipURIImpl{}
	this.scheme = core.SIPTransportNames_SIP
	this.uriParms = core.NewNameValueList("uriparms")
	this.qheaders = core.NewNameValueList("qheaders")
	this.qheaders.SetSeparator("&")
	return this
}
func (this *SipURIImpl) SetScheme(scheme string) error {
	scheme = strings.ToLower(scheme)
	if scheme != core.SIPTransportNames_SIP && scheme != core.SIPTransportNames_SIPS {
		return errors.New("IllegalArgumentException: bad scheme " + scheme)
	}
	this.scheme = scheme
	return nil
}
func (this *SipURIImpl) GetScheme() string {
	return this.scheme
}
func (this *SipURIImpl) ClearUriParms() {
	this.uriParms = core.NewNameValueList("uriparms")
}
func (this *SipURIImpl) ClearPassword() {
	if this.authority != nil {
		userInfo := this.authority.GetUserInfo()
		if userInfo != nil {
			userInfo.ClearPassword()
		}
	}
}
func (this *SipURIImpl) GetAuthority() *Authority {
	return this.authority
}
func (this *SipURIImpl) ClearQheaders() {
	this.qheaders = core.NewNameValueList("qheaders")
}
func (this *SipURIImpl) String() string {
	var retval bytes.Buffer
	retval.WriteString(this.scheme)
	retval.WriteString(core.SIPSeparatorNames_COLON)
	if this.authority != nil {
		retval.WriteString(this.authority.String())
	}
	if this.uriParms.Len() != 0 {
		retval.WriteString(core.SIPSeparatorNames_SEMICOLON)
		retval.WriteString(this.uriParms.String())
	}
	if this.qheaders.Len() != 0 {
		retval.WriteString(core.SIPSeparatorNames_QUESTION)
		retval.WriteString(this.qheaders.String())
	}
	return retval.String()
}
func (this *SipURIImpl) GetUserAtHost() string {
	user := this.authority.GetUserInfo().GetUser()
	host := this.authority.GetHost().String()
	return user + core.SIPSeparatorNames_AT + host
}
func (this *SipURIImpl) GetUserAtHostPort() string {
	var user string
	if this.authority.GetUserInfo() != nil {
		user = this.authority.GetUserInfo().GetUser()
	}
	host := this.authority.GetHost().String()
	port := this.authority.GetPort()
	var s bytes.Buffer
	if user != "" {
		s.WriteString(user)
		s.WriteString(core.SIPSeparatorNames_AT)
	}
	s.WriteString(host)
	if port != -1 {
		s.WriteString(core.SIPSeparatorNames_COLON)
		s.WriteString(strconv.Itoa(port))
	}
	return s.String()
}
func (this *SipURIImpl) GetParm(parmname string) interface{} {
	return this.uriParms.GetValue(parmname)
}
func (this *SipURIImpl) GetMethod() string {
	return this.GetParm(core.SIPTransportNames_METHOD).(string)
}
func (this *SipURIImpl) GetUriParms() *core.NameValueList {
	return this.uriParms
}
func (this *SipURIImpl) RemoveUriParms() {
	this.uriParms = core.NewNameValueList("uriparms")
}