public String execute() {

		String delims = "\\.";
		String[] tokens = ((ComplexTypeParameter) getParameter("inputFile"))
				.getAttribute("name").getValue().split(delims);

		String outputPath;

		// adaugare parametru fisier de iesire
		if (type == 0) {

			outputPath = ((ComplexTypeParameter) getParameter("inputFile"))
					.getAttribute("name").getValue();

		} // output in fisere distincte, pentru executabilele de binarizare
		else {

			outputPath = tokens[0] + "_binariz_output" + id + ".tiff"; // "." +
																		// tokens[1];
		}
		((ComplexTypeParameter) getParameter("outputFile")).setAttribute(
				"name", outputPath);
		String localXMLPath = generateXML();

		try {

			String thisExecPath = MainWindow.execPath + "\\" + getName()
					+ ".exe";

			// Lansare in executie
			
			// Definire proces
			ProcessBuilder exec = new ProcessBuilder(thisExecPath, localXMLPath);
			// Lansare proces
			Process proc = exec.start();
			// Asteapta sa se termine executia programului
			proc.waitFor();

			// Stergere a fisierului XML generat (nu mai este necesar)
			new File(localXMLPath).delete();
			
		} catch (IOException ex) {
			Logger.getLogger(Operation.class.getName()).log(Level.SEVERE, null,
					ex);
		} catch (InterruptedException ex) {
		}

		return outputPath;
	}