question: resolves the service type of this service , returning the service type provided in the #serviceinfo servicetype , serviceurl , string , scopes , attributes constructor if not null , otherwise the servicetype of the serviceurl . concode_field_sep ServiceType serviceType concode_elem_sep long registrationTime concode_elem_sep long DEREGISTERED concode_elem_sep ServiceURL serviceURL concode_elem_sep Attributes attributes concode_elem_sep String language concode_elem_sep Scopes scopes concode_elem_sep long UNREGISTERED concode_elem_sep Key key concode_field_sep Key getKey concode_elem_sep ServiceURL getServiceURL concode_elem_sep ServiceURL getServiceURL concode_elem_sep String getLanguage concode_elem_sep String getLanguage concode_elem_sep boolean expires concode_elem_sep Attributes getAttributes concode_elem_sep ServiceInfo addAttributes concode_elem_sep boolean isExpiredAsOf concode_elem_sep Scopes getScopes concode_elem_sep void setRegistered concode_elem_sep int hashCode concode_elem_sep boolean equals concode_elem_sep ServiceInfo clone concode_elem_sep ServiceInfo from concode_elem_sep ServiceInfo from concode_elem_sep boolean isRegistered concode_elem_sep ServiceInfo removeAttributes concode_elem_sep ServiceType getServiceType
target: ServiceType function ( ) { ServiceType loc0 = getServiceType ( ) ; if ( loc0 != null ) return loc0 ; return getServiceURL ( ) . getServiceType ( ) ; }