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

import org.kde.qt.Qt;
import org.kde.qt.QtSupport;
import org.kde.qt.QObject;
import java.util.ArrayList;

/**

 This is a convenience class for KService. You can use it if you have
 a KService describing a KDataTool. In this case the KDataToolInfo class
 is more convenient to work with.
 Especially useful is the method createTool which creates the datatool
 described by the service.
		@short    This is a convenience class for KService.
		@see KDataTool

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

	/**	
		 Create an invalid KDataToolInfo.
		     		@short    Create an invalid KDataToolInfo.
	*/
	public KDataToolInfo() {
		newKDataToolInfo();
	}
	private native void newKDataToolInfo();
	/**	
		 Create a valid KDataToolInfo.
			@param service the corresponding service
			@param instance the instance to use
		     		@short    Create a valid KDataToolInfo.
	*/
	// KDataToolInfo* KDataToolInfo(const KService::Ptr& arg1,KInstance* arg2); >>>> NOT CONVERTED
	/**	
		 Copy constructor.
		     		@short    Copy constructor.
	*/
	public KDataToolInfo(KDataToolInfo info) {
		newKDataToolInfo(info);
	}
	private native void newKDataToolInfo(KDataToolInfo info);
	/**	
		 Returns the data type that the DataTool can accept.
				@return the C++ data type that this DataTool accepts.
         For example "String" or "QImage" or something more
         complicated.
     
		@short    Returns the data type that the DataTool can accept.
	*/
	public native String dataType();
	/**	
		 Returns a list of mime type that will be accepted by the DataTool.
		 The mimetypes are only used if the dataType can be used to store
		 different mimetypes. For example in a "String" you could save "text/plain"
		 or "text/html" or "text/xml".
				@return the mime types accepted by this DataTool. For example
         "image/gif" or "text/plain". In some cases the dataType
         determines the accepted type of data perfectly. In this cases
         this list may be empty.
     
		@short    Returns a list of mime type that will be accepted by the DataTool.
	*/
	public native ArrayList mimeTypes();
	/**	
		 Checks whether the DataTool is read-only.
				@return true if the DataTool does not modify the data passed to it by KDataTool.run.
     
		@short    Checks whether the DataTool is read-only.
	*/
	public native boolean isReadOnly();
	/**	
		 Returns the icon name for this DataTool.
				@return the name of the icon for the DataTool
     
		@short    Returns the icon name for this DataTool.
	*/
	public native String iconName();
	/**	
		 Returns a list of strings that you can put in a QPopupMenu item, for example to
		 offer the DataTools services to the user. The returned value
		 is usually something like "Spell checking", "Shrink Image", "Rotate Image"
		 or something like that.     
		 This list comes from the Comment field of the tool's desktop file
		 (so that it can be translated).
			 Each of the strings returned corresponds to a string in the list returned by
		 commands.
				@return a list of strings that you can put in a QPopupMenu item
     
		@short    Returns a list of strings that you can put in a QPopupMenu item, for example to  offer the DataTools services to the user.
	*/
	public native ArrayList userCommands();
	/**	
		 Returns the list of commands the DataTool can execute. The application
		 passes the command to the KDataTool.run method.
			 This list comes from the Commands field of the tool's desktop file.
			 Each of the strings returned corresponds to a string in the list returned by
		 userCommands.
				@return the list of commands the DataTool can execute, suitable for 
         the KDataTool.run method.
     
		@short    Returns the list of commands the DataTool can execute.
	*/
	public native ArrayList commands();
	/**	
		 Creates the data tool described by this KDataToolInfo.
			@param parent the parent of the QObject (or 0 for parent-less KDataTools)
			@param name the name of the QObject, can be 0
				@return a pointer to the created data tool or 0 on error.
     
		@short    Creates the data tool described by this KDataToolInfo.
	*/
	public native KDataTool createTool(QObject parent, String name);
	public native KDataTool createTool(QObject parent);
	public native KDataTool createTool();
	/**	
		 The KDataToolInfo's service that is represented by this class.
				@return the service
     
		@short    The KDataToolInfo's service that is represented by this class.
	*/
	// KService::Ptr service(); >>>> NOT CONVERTED
	/**	
		 The instance of the service.
				@return the instance
     
		@short    The instance of the service.
	*/
	public native KInstanceInterface instance();
	/**	
		 A DataToolInfo may be invalid if the KService passed to its constructor does
		 not feature the service type "KDataTool".
				@return true if valid, false otherwise
     
		@short    A DataToolInfo may be invalid if the KService passed to its constructor does  not feature the service type "KDataTool".
	*/
	public native boolean isValid();
	/**	
		 Queries the KTrader about installed KDataTool implementations.
			@param datatype a type that the application can 'export' to the tools (e.g. String)
			@param mimetype the mimetype of the data (e.g. text/plain)
			@param instance the application (or the part)'s instance (to check if a tool is excluded from this part,
		 and also used if the tool wants to read its configuration in the app's config file).
				@return the list of results
     
		@short    Queries the KTrader about installed KDataTool implementations.
	*/
	// QValueList<KDataToolInfo> query(const QString& arg1,const QString& arg2,KInstance* arg3); >>>> NOT CONVERTED
	/** 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();
}
