1402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/*******************************************************************************
2402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Copyright (c) 2005, 2006 IBM Corporation and others.
3402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * All rights reserved. This program and the accompanying materials
4402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * are made available under the terms of the Eclipse Public License v1.0
5402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * which accompanies this distribution, and is available at
6402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * http://www.eclipse.org/legal/epl-v10.html
7402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
8402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Contributors:
9402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *     IBM Corporation - initial API and implementation
10402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *******************************************************************************/
11402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpackage org.eclipse.releng.generators.rss;
12402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
13402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport java.io.File;
14402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
15402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.apache.tools.ant.BuildException;
16402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.apache.tools.ant.Task;
17402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
18402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.eclipse.releng.util.rss.Messages;
19402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollimport org.eclipse.releng.util.rss.RSSFeedUtil;
20402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
21402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll/**
22402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * Parameters:
23402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *   debug - more output to console - eg., 0|1|2
24402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
25402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *   file - path to the XML file that will be read - eg., /path/to/file.to.read.xml
26402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *   xpath - xpath string representing the object to read
27402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
28402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll * @author nickb
29402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll *
30402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll */
31402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Mollpublic class RSSFeedGetPropertyTask extends Task {
32402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
33402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  private int debug = 0;
34402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
35402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  //required fields
36402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  private File file;
37402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
38402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  private String xpath;
39402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
40402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  //optional
41402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  public void setDebug(int debug) { this.debug = debug; }
42402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
43402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  //required fields
44402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  public void setFile(String file) {
45402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    if (isNullString(file))
46402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    { System.err.println(Messages.getString("RSSFeedCommon.FileError")); } //$NON-NLS-1$
47402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    else
48402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    { this.file = new File(file); }
49402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  }
50402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  public void setXpath(String xpath) {
51402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    if (isNullString(xpath))
52402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    { System.err.println(Messages.getString("RSSFeedCommon.XpathError")); } //$NON-NLS-1$
53402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    else
54402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    { this.xpath = xpath; }
55402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  }
56402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
57402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  // The method executing the task
58402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  public void execute() throws BuildException {
59402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    RSSFeedUpdateEntryTask updater = new RSSFeedUpdateEntryTask();
60402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    updater.setFile(file.toString());
61402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    updater.setXpath(xpath);
62402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    updater.setDebug(debug);
63402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    updater.execute();
64402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  }
65402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
66402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  private static boolean isNullString(String str)
67402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  {
68402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll    return RSSFeedUtil.isNullString(str);
69402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll  }
70402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll
71402794e73aed8611d62eb4b01cd155e2d76fcb87Raphael Moll}