RE: Flowscript - delete file

2012-12-29 Thread Robby Pelssers
Hi Peter,

I did not test the script I wrote actually and I can tell you why the script 
runs into an error.

.delete() is also a javascript method on an object.  It will delete a property 
by the name you specify.  As you clearly want to call the delete method on the 
file you need to use the workaround you used.

Kind regards,
Robby

From: Peter Sparkes [mailto:pe...@didm.co.uk]
Sent: Saturday, December 29, 2012 8:58 AM
To: users@cocoon.apache.org
Subject: Re: Flowscript - delete file

Hi Martin and Robby,

Thank you both for your help, what I have ended up with is:

importClass(Packages.java.io.File);
importClass(Packages.java.io.FileNotFoundException);

function deletefile() {

//var filePath = cocoon.parameters["file"];

var filePath = "D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml";  //for 
testing
var file = new File(filePath);
 try {
if (!file.exists()) {
   throw new FileNotFoundException(filePath);
}
file.delete();

cocoon.sendPage('deletefilesuccess',{file:filePath});
} catch (e) {
cocoon.sendPage('deletefileerror',{file:e});
}
}

However, file.delete(); produces a syntax error.

If I comment out file.delete(), the rest of the script works correctly:

  *   If .xml exists, deletefilesuccess is accessed
  *   If .xml does not exist, deletefileerror is accessed and I get:

Error File java.io.FileNotFoundException: 
D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml Not Found
What's wrong with file.delete(); ?

Regards

Peter



On 27/12/2012 18:35, Martin Heiden wrote:

Hi Peter,



Ok, I missed something:



 var xml_file = 
Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file + 
".xml");



should be:



 var xml_file = new 
Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file + 
".xml");



But you should try the function Robby sent to the list. It's much

cleaner.



Regards,



  Martin.





Thursday, December 27, 2012, 6:12:08 PM, you wrote:



PS> Hi Martin



PS> Thanks for your suggestion, unfortunately I get the same  error. The error 
log gives:



PS> ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) 
PoolThread-4/JSErrorReporter:

PS> 
"file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js",
 line 13: missing name after .

PS> operator

PS> ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] 
(/office/deletefile_)

PS> PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 
'deletefile'

PS>  at  -

PS> 
file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37

PS>  at  -

PS> 
file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90

PS> org.mozilla.javascript.EvaluatorException:

PS> 
"file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js",
 line 1: Compilation produced 1

PS> syntax errors.

PS>  at

PS> 
org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67)



PS> regards



PS> Peter





PS> On 27/12/2012 11:42, Martin Heiden wrote:

Hi Peter,



PS>  //Delete file

PS>  Packages.java.io.File.xml_file.delete();



Try



xml_file.delete();



You just have to add the full "path" to the class when you

construct it. After this, the variable contains a reference and you

can just use it.



Regards,



   Martin.





Thursday, December 27, 2012, 10:28:31 AM, you wrote:



PS> Hi,



PS> I am trying to delete xml files using the following flowscript:



PS> function deletefile() {



PS>  //file to be deleted

PS>  var file =

PS> Packages.java.lang.String(cocoon.parameters["file"]);



PS>  try {

PS>  // creating a link to the file to be deleted

PS>  var xml_file =

PS> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file

PS> + ".xml");



PS>  //Delete file

PS>  Packages.java.io.File.xml_file.delete();



PS>  //  .txt file with OK message

PS>  cocoon.sendPage("success.txt", null);

PS>  }

PS>  catch(ex){

PS>  cocoon.log.error(ex);

PS>  // Smth. went wrong. Sending a error.txt file to the browser

PS>cocoon.sendPage("error.txt", null);

PS>  }



PS> }



PS> and get "Compilation produced 1 syntax errors"



PS> The error log contains:



PS> ERROR deletefile.js", line 13: missing name after . 
operator



PS> line 13 is:



PS> Packages.java.io.File.xml_file.delete();



PS> What I am doing wrong?



PS> Peter















-

To unsubscribe, e-mail: 
users-unsubscr...@cocoon.apache.org

For additional commands, e-mail: 
users-h...@cocoon.apache.org













Ciao,

 Martin





--

Re: Flowscript - delete file

2012-12-29 Thread insigh...@gmail.com

Hi Peter,

It's not flowscript, but I believe one can also use the source-writing 
transformer to delete xml files from the filesystem:



   ...
   
 context://doc/editable/my.xml
   
   ...
 

One can insert the exact filename via a sitemap parameter/xslt variable earlier 
in the chain, then use:



to delete.

See: https://cocoon.apache.org/2.1/userdocs/sourcewriting-transformer.html

Dan




On 2012-12-29 3:05 AM, Peter Sparkes wrote:

Solved

I found the answer at 
http://markmail.org/message/7psype56uhu5kbad#query:+page:1+mid:ezqkl6i255bjdw75+state:results


I amended file.delete(); to:

file["delete"]();

and it works,  the file is deleted. However, I don't know why it works

Thank you all for your help

Peter





Re: Flowscript - delete file

2012-12-29 Thread Peter Sparkes

Solved

I found the answer at 
http://markmail.org/message/7psype56uhu5kbad#query:+page:1+mid:ezqkl6i255bjdw75+state:results


I amended file.delete(); to:

file["delete"]();

and it works,  the file is deleted. However, I don't know why it works

Thank you all for your help

Peter

On 29/12/2012 07:58, Peter Sparkes wrote:

Hi Martin and Robby,

Thank you both for your help, what I have ended up with is:

importClass(Packages.java.io.File);
importClass(Packages.java.io.FileNotFoundException);

function deletefile() {

//var filePath = cocoon.parameters["file"];

var filePath = "D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml";  //for 
testing
var file = new File(filePath);
 try {
if (!file.exists()) {
   throw new FileNotFoundException(filePath);
}
file.delete();
cocoon.sendPage('deletefilesuccess',{file:filePath});
} catch (e) {
cocoon.sendPage('deletefileerror',{file:e});
}
}

However, file.delete(); produces a syntax error.

If I comment out file.delete(), the rest of the script works correctly:

  * If .xml exists, deletefilesuccess is accessed
  * If .xml does not exist, deletefileerror is accessed and I get:


  Error File java.io.FileNotFoundException: 
D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml
  Not Found

What's wrong with file.delete(); ?

Regards

Peter



On 27/12/2012 18:35, Martin Heiden wrote:

Hi Peter,

Ok, I missed something:

  var xml_file = Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file 
+ ".xml");

should be:

  var xml_file = new Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + 
file + ".xml");

But you should try the function Robby sent to the list. It's much
cleaner.

Regards,

   Martin.


Thursday, December 27, 2012, 6:12:08 PM, you wrote:

PS> Hi Martin

PS> Thanks for your suggestion, unfortunately I get the same  error. The error 
log gives:

PS> ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) 
PoolThread-4/JSErrorReporter:
PS>"file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js", line 
13: missing name after .
PS> operator
PS> ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] 
(/office/deletefile_)
PS> PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 
'deletefile'
PS>  at  -
PS>file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37
PS>  at  -
PS>file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90
PS> org.mozilla.javascript.EvaluatorException:
PS>"file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js", line 
1: Compilation produced 1
PS> syntax errors.
PS>  at
PS> 
org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67)

PS> regards

PS> Peter


PS> On 27/12/2012 11:42, Martin Heiden wrote:

Hi Peter,

PS>  //Delete file
PS>  Packages.java.io.File.xml_file.delete();

Try

xml_file.delete();

You just have to add the full "path" to the class when you
construct it. After this, the variable contains a reference and you
can just use it.

Regards,

Martin.


Thursday, December 27, 2012, 10:28:31 AM, you wrote:

PS> Hi,

PS> I am trying to delete xml files using the following flowscript:

PS> function deletefile() {

PS>  //file to be deleted
PS>  var file =
PS> Packages.java.lang.String(cocoon.parameters["file"]);

PS>  try {
PS>  // creating a link to the file to be deleted
PS>  var xml_file =
PS> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file
PS> + ".xml");

PS>  //Delete file
PS>  Packages.java.io.File.xml_file.delete();

PS>  //  .txt file with OK message
PS>  cocoon.sendPage("success.txt", null);
PS>  }
PS>  catch(ex){
PS>  cocoon.log.error(ex);
PS>  // Smth. went wrong. Sending a error.txt file to the browser
PS>cocoon.sendPage("error.txt", null);
PS>  }

PS> }

PS> and get "Compilation produced 1 syntax errors"

PS> The error log contains:

PS> ERROR deletefile.js", line 13: missing name after . 
operator

PS> line 13 is:

PS> Packages.java.io.File.xml_file.delete();

PS> What I am doing wrong?

PS> Peter







-
To unsubscribe, e-mail:users-unsubscr...@cocoon.apache.org
For additional commands, e-mail:users-h...@cocoon.apache.org





Ciao,
  Martin


-
To unsubscribe, e-mail:users-unsubscr...@cocoon.apache.org
For additional commands, e-mail:users-h...@cocoon.apache.org








Re: Flowscript - delete file

2012-12-29 Thread gelo1234
Hi Peter,

file.delete() doesn't get executed in this case.

Its:
  if (!file.exists()) {
   throw new FileNotFoundException(filePath);

that line of code that triggers your Error message and file.delete() has
not been reached.

Greetings,
Greg




2012/12/29 Peter Sparkes 

>  Hi Martin and Robby,
>
> Thank you both for your help, what I have ended up with is:
>
> importClass(Packages.java.io.File);
> importClass(Packages.java.io.FileNotFoundException);
>
> function deletefile() {
>
> //var filePath = cocoon.parameters["file"];
>
> var filePath = "D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml";
> //for testing
>
> var file = new File(filePath);
>  try {
> if (!file.exists()) {
>throw new FileNotFoundException(filePath);
> }
> file.delete();
> cocoon.sendPage('deletefilesuccess',{file:filePath});
> } catch (e) {
> cocoon.sendPage('deletefileerror',{file:e});
> }
> }
>
> However, file.delete(); produces a syntax error.
>
> If I comment out file.delete(), the rest of the script works correctly:
>
>- If .xml exists, deletefilesuccess is accessed
>- If .xml does not exist, deletefileerror is accessed and I get:
>Error File java.io.FileNotFoundException:
>D:/cocoon-2.1.11-wl/build/webapp/B&B/xml/.xml Not Found
>
> What's wrong with file.delete(); ?
>
> Regards
>
> Peter
>
>
>
> On 27/12/2012 18:35, Martin Heiden wrote:
>
> Hi Peter,
>
> Ok, I missed something:
>
>  var xml_file = 
> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file + 
> ".xml");
>
> should be:
>
>  var xml_file = new 
> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file + 
> ".xml");
>
> But you should try the function Robby sent to the list. It's much
> cleaner.
>
> Regards,
>
>   Martin.
>
>
> Thursday, December 27, 2012, 6:12:08 PM, you wrote:
>
> PS> Hi Martin
>
> PS> Thanks for your suggestion, unfortunately I get the same  error. The 
> error log gives:
>
> PS> ERROR (2012-12-27) 15:30.46:723 [flow] (/office/deletefile_) 
> PoolThread-4/JSErrorReporter:
> PS> "file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js", 
> line 13: missing name after .
> PS> operator
> PS> ERROR (2012-12-27) 15:30.46:723 [sitemap.handled-errors] 
> (/office/deletefile_)
> PS> PoolThread-4/ErrorHandlerHelper: Sitemap: error calling function 
> 'deletefile'
> PS>  at  -
> PS> file:///D:/cocoon-2.1.11-wl/build/webapp/office/sitemap.xmap:230:37
> PS>  at  -
> PS> file:///D:/cocoon-2.1.11-wl/build/webapp/sitemap.xmap:783:90
> PS> org.mozilla.javascript.EvaluatorException:
> PS> "file:///D:/cocoon-2.1.11-wl/build/webapp/office/flow/deletefile.js", 
> line 1: Compilation produced 1
> PS> syntax errors.
> PS>  at
> PS> 
> org.apache.cocoon.components.flow.javascript.JSErrorReporter.runtimeError(JSErrorReporter.java:67)
>
> PS> regards
>
> PS> Peter
>
>
> PS> On 27/12/2012 11:42, Martin Heiden wrote:
>
>  Hi Peter,
>
> PS>  //Delete file
> PS>  Packages.java.io.File.xml_file.delete();
>
> Try
>
> xml_file.delete();
>
> You just have to add the full "path" to the class when you
> construct it. After this, the variable contains a reference and you
> can just use it.
>
> Regards,
>
>Martin.
>
>
> Thursday, December 27, 2012, 10:28:31 AM, you wrote:
>
> PS> Hi,
>
> PS> I am trying to delete xml files using the following flowscript:
>
> PS> function deletefile() {
>
> PS>  //file to be deleted
> PS>  var file =
> PS> Packages.java.lang.String(cocoon.parameters["file"]);
>
> PS>  try {
> PS>  // creating a link to the file to be deleted
> PS>  var xml_file =
> PS> Packages.java.io.File("D:\cocoon-2.1.11-wl\build\webapp\B&B\xml" + file
> PS> + ".xml");
>
> PS>  //Delete file
> PS>  Packages.java.io.File.xml_file.delete();
>
> PS>  //  .txt file with OK message
> PS>  cocoon.sendPage("success.txt", null);
> PS>  }
> PS>  catch(ex){
> PS>  cocoon.log.error(ex);
> PS>  // Smth. went wrong. Sending a error.txt file to the browser
> PS>cocoon.sendPage("error.txt", null);
> PS>  }
>
> PS> }
>
> PS> and get "Compilation produced 1 syntax errors"
>
> PS> The error log contains:
>
> PS> ERROR deletefile.js", line 13: missing name after . 
> operator
>
> PS> line 13 is:
>
> PS> Packages.java.io.File.xml_file.delete();
>
> PS> What I am doing wrong?
>
> PS> Peter
>
>
>
>
>
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> For additional commands, e-mail: users-h...@cocoon.apache.org
>
>   Ciao,
>  Martin
>
>
> -
> To unsubscribe, e-mail: users-unsubscr...@cocoon.apache.org
> For additional commands, e-mail: users-h...@cocoon.ap