//Auto-generated by kalyptus. DO NOT EDIT.
package org.kde.koala;

import org.kde.qt.Qt;
import org.kde.qt.QtSupport;

/**

 KServiceTypeProfile represents the user's preferences for services
 of a service type.
 It consists of a list of services (service offers) for the service type
 that is sorted by the user's preference.
 KTrader uses KServiceTypeProfile to sort its results, so usually
 you can just use KTrader to find the user's preferred service.
		@short Represents the user's preferences for services of a service type.
		@see KService
		@see KServiceType
		@see KServiceOffer
		@see KTrader

*/
public class KServiceTypeProfile implements QtSupport {
	private long _qt;
	private boolean _allocatedInJavaWorld = true;
	protected KServiceTypeProfile(Class dummy){}

	/**	
		 Returns the list of all service offers for the service types
		 that are represented by this profile.
				@return the list of KServiceOffer instances
   
		@short    Returns the list of all service offers for the service types  that are represented by this profile.
	*/
	// KServiceTypeProfile::OfferList offers(); >>>> NOT CONVERTED
	/**	
		 Returns the preferred service for <code>_serviceType</code> and <code>_genericServiceType</code>
		 ("Application", type of component, or null).
			@param serviceType the service type (e.g. a MIME type)
			@param genericServiceType the generic service type (e.g. "Application" or
		                           "KParts/ReadOnlyPart")
				@return the preferred service, or 0 if no service is available
   
		@short    Returns the preferred service for <code>_serviceType</code> and <code>_genericServiceType</code>  ("Application", type of component, or null).
	*/
	// KService::Ptr preferredService(const QString& arg1,const QString& arg2); >>>> NOT CONVERTED
	/**	
		 Returns the profile for the requested service type.
			@param servicetype the service type (e.g. a MIME type)
			@param genericServiceType the generic service type (e.g. "Application"
		                           or "KParts/ReadOnlyPart"). Can be null,
		                           then the "Application" generic type will be used
				@return the KServiceTypeProfile with the given arguments, or 0 if not found
   
		@short    Returns the profile for the requested service type.
	*/
	public static native KServiceTypeProfile serviceTypeProfile(String servicetype, String genericServiceType);
	public static native KServiceTypeProfile serviceTypeProfile(String servicetype);
	/**	
		 Returns the offers associated with a given servicetype, sorted by preference.
		 This is what KTrader uses to get the list of offers, before applying the
		 constraints and preferences.
			 If <code>genericServiceType</code> is specified, a list is returned with
		 the offers associated with the combination of the two service types.
		 This is almost like an "foo in ServiceTypes" constraint in the KTrader,
		 but the difference is that to order the offers, we will look at entries
		 specifically for those two service types. Typically, this is used for
		 getting the list of embeddable components that can handle a given mimetype.
		 In that case, <code>servicetype</code> is the mimetype and <code>genericServiceType</code> is "KParts/ReadOnlyPart".
			@param servicetype the service type (e.g. a MIME type)
			@param genericServiceType the generic service type (e.g. "Application"
		                           or "KParts/ReadOnlyPart"). Can be null,
		                           then all generic types will be included
				@return the list of offers witht he given parameters
   
		@short    Returns the offers associated with a given servicetype, sorted by preference.
	*/
	// KServiceTypeProfile::OfferList offers(const QString& arg1,const QString& arg2); >>>> NOT CONVERTED
	// KServiceTypeProfile::OfferList offers(const QString& arg1); >>>> NOT CONVERTED
	/**	
		 Returns a list of all KServiceTypeProfiles.
				@return a list of all KServiceTypeProfiles
   
		@short    Returns a list of all KServiceTypeProfiles.
	*/
	// const QPtrList<KServiceTypeProfile>& serviceTypeProfiles(); >>>> NOT CONVERTED
	/**	
		 Clear all cached information
		   		@short    Clear all cached information
	*/
	public static native void clear();
	/**	
		 This method activates a special mode of KServiceTypeProfile, in which all/all
		 and all/allfiles are excluded from the results of the queries.
		 It is meant for the configuration module _only_.
			   		@short    This method activates a special mode of KServiceTypeProfile, in which all/all  and all/allfiles are excluded from the results of the queries.
	*/
	public static native void setConfigurationMode();
	/**	
			   		@short
	*/
	public static native boolean configurationMode();
	/**	
		 Constructor is called when the user profile is read for the
		 first time.
			@param serviceType the service type (e.g. a MIME type)
			@param genericServiceType the generic service type (e.g. "Application"
		                           or "KParts/ReadOnlyPart"). Can be null,
		                           then the "Application" generic type will be used
		   		@short    Constructor is called when the user profile is read for the  first time.
	*/
	public KServiceTypeProfile(String serviceType, String genericServiceType) {
		newKServiceTypeProfile(serviceType,genericServiceType);
	}
	private native void newKServiceTypeProfile(String serviceType, String genericServiceType);
	public KServiceTypeProfile(String serviceType) {
		newKServiceTypeProfile(serviceType);
	}
	private native void newKServiceTypeProfile(String serviceType);
	/**	
		 Add a service to this profile.
			@param _service the name of the service
			@param _preference the user's preference value, must be positive,
		              bigger is better
			@param _allow_as_default true if the service should be used as
		                 default
		   		@short    Add a service to this profile.
	*/
	protected native void addService(String _service, int _preference, boolean _allow_as_default);
	protected native void addService(String _service, int _preference);
	protected native void addService(String _service);
	/** Deletes the wrapped C++ instance */
	protected native void finalize() throws InternalError;
	/** Delete the wrapped C++ instance ahead of finalize() */
	public native void dispose();
	/** Has the wrapped C++ instance been deleted? */
	public native boolean isDisposed();
}
