src/test/NullPlugin.java

Code
Comments
Other
Rev Date Author Line
1241 05 Sep 05 enell 1 /*
1241 05 Sep 05 enell 2   $Id$
1241 05 Sep 05 enell 3
3675 16 Aug 07 jari 4   Copyright (C) 2005 Johan Enell, Nicklas Nordborg
4889 06 Apr 09 nicklas 5   Copyright (C) 2006 Johan Enell, Jari Häkkinen, Nicklas Nordborg
1241 05 Sep 05 enell 6  
2304 22 May 06 jari 7   This file is part of BASE - BioArray Software Environment.
2304 22 May 06 jari 8   Available at http://base.thep.lu.se/
1241 05 Sep 05 enell 9
1241 05 Sep 05 enell 10   BASE is free software; you can redistribute it and/or
1241 05 Sep 05 enell 11   modify it under the terms of the GNU General Public License
4480 05 Sep 08 jari 12   as published by the Free Software Foundation; either version 3
1241 05 Sep 05 enell 13   of the License, or (at your option) any later version.
1241 05 Sep 05 enell 14
1241 05 Sep 05 enell 15   BASE is distributed in the hope that it will be useful,
1241 05 Sep 05 enell 16   but WITHOUT ANY WARRANTY; without even the implied warranty of
1241 05 Sep 05 enell 17   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1241 05 Sep 05 enell 18   GNU General Public License for more details.
1241 05 Sep 05 enell 19
1241 05 Sep 05 enell 20    You should have received a copy of the GNU General Public License
4514 11 Sep 08 jari 21    along with BASE. If not, see <http://www.gnu.org/licenses/>.
1241 05 Sep 05 enell 22 */
5437 01 Oct 10 nicklas 23 import net.sf.basedb.core.DateUtil;
1781 18 Jan 06 nicklas 24 import net.sf.basedb.core.Item;
1251 06 Sep 05 enell 25 import net.sf.basedb.core.BaseException;
2147 04 Apr 06 nicklas 26 import net.sf.basedb.core.Path;
2147 04 Apr 06 nicklas 27 import net.sf.basedb.core.PathParameterType;
1240 05 Sep 05 enell 28 import net.sf.basedb.core.PluginParameter;
1240 05 Sep 05 enell 29 import net.sf.basedb.core.ProgressReporter;
1240 05 Sep 05 enell 30 import net.sf.basedb.core.RequestInformation;
1750 10 Jan 06 nicklas 31 import net.sf.basedb.core.SessionControl;
1759 12 Jan 06 nicklas 32 import net.sf.basedb.core.DbControl;
1240 05 Sep 05 enell 33 import net.sf.basedb.core.StringParameterType;
1750 10 Jan 06 nicklas 34 import net.sf.basedb.core.IntegerParameterType;
1754 11 Jan 06 nicklas 35 import net.sf.basedb.core.LongParameterType;
1754 11 Jan 06 nicklas 36 import net.sf.basedb.core.FloatParameterType;
1754 11 Jan 06 nicklas 37 import net.sf.basedb.core.DoubleParameterType;
1754 11 Jan 06 nicklas 38 import net.sf.basedb.core.DateParameterType;
1754 11 Jan 06 nicklas 39 import net.sf.basedb.core.BooleanParameterType;
1759 12 Jan 06 nicklas 40 import net.sf.basedb.core.ItemParameterType;
1759 12 Jan 06 nicklas 41 import net.sf.basedb.core.FileParameterType;
1759 12 Jan 06 nicklas 42 import net.sf.basedb.core.MimeType;
1759 12 Jan 06 nicklas 43 import net.sf.basedb.core.File;
1759 12 Jan 06 nicklas 44 import net.sf.basedb.core.ItemQuery;
5437 01 Oct 10 nicklas 45 import net.sf.basedb.core.TimestampParameterType;
1759 12 Jan 06 nicklas 46 import net.sf.basedb.core.query.Orders;
1759 12 Jan 06 nicklas 47 import net.sf.basedb.core.query.Hql;
6393 22 Jan 14 nicklas 48 import net.sf.basedb.core.signal.SignalHandler;
6393 22 Jan 14 nicklas 49 import net.sf.basedb.core.signal.SignalTarget;
6393 22 Jan 14 nicklas 50 import net.sf.basedb.core.signal.ThreadSignalHandler;
1376 22 Sep 05 nicklas 51 import net.sf.basedb.core.plugin.Plugin;
1750 10 Jan 06 nicklas 52 import net.sf.basedb.core.plugin.ParameterValues;
1376 22 Sep 05 nicklas 53 import net.sf.basedb.core.plugin.InteractivePlugin;
1240 05 Sep 05 enell 54 import net.sf.basedb.core.plugin.AbstractPlugin;
1701 09 Dec 05 nicklas 55 import net.sf.basedb.core.plugin.GuiContext;
1240 05 Sep 05 enell 56 import net.sf.basedb.core.plugin.Request;
1240 05 Sep 05 enell 57 import net.sf.basedb.core.plugin.Response;
1240 05 Sep 05 enell 58
1240 05 Sep 05 enell 59 import java.util.ArrayList;
1750 10 Jan 06 nicklas 60 import java.util.List;
1264 06 Sep 05 enell 61 import java.util.Arrays;
1376 22 Sep 05 nicklas 62 import java.util.Set;
1754 11 Jan 06 nicklas 63 import java.util.Date;
1787 18 Jan 06 nicklas 64 import java.util.Collections;
1240 05 Sep 05 enell 65
1240 05 Sep 05 enell 66 /**
1240 05 Sep 05 enell 67    Just a simple test plugin
1240 05 Sep 05 enell 68    
1240 05 Sep 05 enell 69   @base.modified $Date$
1787 18 Jan 06 nicklas 70   @author Enell, Nicklas
1240 05 Sep 05 enell 71   @version 2.0
1240 05 Sep 05 enell 72 */
1265 06 Sep 05 nicklas 73 public class NullPlugin 
1265 06 Sep 05 nicklas 74   extends AbstractPlugin
6393 22 Jan 14 nicklas 75   implements InteractivePlugin, NullPluginInterface, SignalTarget
1240 05 Sep 05 enell 76 {
1787 18 Jan 06 nicklas 77   private static final Set<GuiContext> guiContexts = 
1787 18 Jan 06 nicklas 78     Collections.singleton(new GuiContext(Item.REPORTER, GuiContext.Type.LIST));
1240 05 Sep 05 enell 79
1754 11 Jan 06 nicklas 80   private static final PluginParameter<String> stringSection = new PluginParameter<String>(
1754 11 Jan 06 nicklas 81     "stringSection", "String values", "This section have only string values", null
1754 11 Jan 06 nicklas 82   );
1754 11 Jan 06 nicklas 83
1750 10 Jan 06 nicklas 84   private static final PluginParameter<String> oneString = new PluginParameter<String>(
1759 12 Jan 06 nicklas 85     "oneString", "One string", "Please enter single string value", 
2193 26 Apr 06 nicklas 86     new StringParameterType(255, null, true, 1, 0, 0)
1750 10 Jan 06 nicklas 87   );
1750 10 Jan 06 nicklas 88   private static final PluginParameter<String> manyStrings = new PluginParameter<String>(
1750 10 Jan 06 nicklas 89     "manyStrings", "Many strings", "Please enter several string values", 
2193 26 Apr 06 nicklas 90     new StringParameterType(255, null, true, 0, 0, 0)
1750 10 Jan 06 nicklas 91   );
1750 10 Jan 06 nicklas 92   private static final PluginParameter<String> selectOneString =  new PluginParameter<String>(
1750 10 Jan 06 nicklas 93     "selectOneString", "Select one string", "Please select a single string value", 
1781 18 Jan 06 nicklas 94     new StringParameterType(255, null, true, 1, 0, 0, Arrays.asList("A", "B", "C"))
1750 10 Jan 06 nicklas 95   );
1750 10 Jan 06 nicklas 96   private static final PluginParameter<String> selectMultipleStrings =  new PluginParameter<String>(
1750 10 Jan 06 nicklas 97     "selectMultipleStrings", "Select multiple strings", "Please select any number of string values", 
1781 18 Jan 06 nicklas 98     new StringParameterType(255, null, true, 0, 0, 0, Arrays.asList("One", "Two", "Three", "Four"))
1750 10 Jan 06 nicklas 99   );
1750 10 Jan 06 nicklas 100   
2455 30 Jun 06 nicklas 101   private static final PluginParameter<String> oneText = new PluginParameter<String>(
2455 30 Jun 06 nicklas 102       "oneText", "One text", "Please enter single text value", 
2459 30 Jun 06 nicklas 103       new StringParameterType(null, null, false, 1, 0, 0)
2455 30 Jun 06 nicklas 104     );
2455 30 Jun 06 nicklas 105   
1754 11 Jan 06 nicklas 106   private static final PluginParameter<Integer> integerSection = new PluginParameter<Integer>(
1754 11 Jan 06 nicklas 107     "integerSection", "Integer values", "This section have only integer values", null
1754 11 Jan 06 nicklas 108   );
1754 11 Jan 06 nicklas 109
1750 10 Jan 06 nicklas 110   private static final PluginParameter<Integer> oneInteger = new PluginParameter<Integer>(
1750 10 Jan 06 nicklas 111     "oneInteger", "One integer", "Please enter single integer value", new IntegerParameterType()
1750 10 Jan 06 nicklas 112   );
1750 10 Jan 06 nicklas 113   private static final PluginParameter<Integer> manyIntegers = new PluginParameter<Integer>(
1750 10 Jan 06 nicklas 114     "manyIntegers", "Many integers", "Please enter several integer values", 
1750 10 Jan 06 nicklas 115     new IntegerParameterType(1, 100, null, false, 0, 0, 0, null)
1750 10 Jan 06 nicklas 116   );
1750 10 Jan 06 nicklas 117   private static final PluginParameter<Integer> selectOneInteger =  new PluginParameter<Integer>(
1750 10 Jan 06 nicklas 118     "selectOneInteger", "Select one integer", "Please select a single integer value", 
1750 10 Jan 06 nicklas 119     new IntegerParameterType(null, null, null, false, 1, 0, 0, Arrays.asList(1, 2, 3))
1750 10 Jan 06 nicklas 120   );
1750 10 Jan 06 nicklas 121   private static final PluginParameter<Integer> selectMultipleIntegers =  new PluginParameter<Integer>(
1750 10 Jan 06 nicklas 122     "selectMultipleIntegers", "Select multiple integers", "Please select any number of integer values", 
1750 10 Jan 06 nicklas 123     new IntegerParameterType(null, null, null, false, 0, 0, 0, Arrays.asList(10, 20, 30, 40))
1750 10 Jan 06 nicklas 124   );
1754 11 Jan 06 nicklas 125   
1754 11 Jan 06 nicklas 126   private static final PluginParameter<Long> longSection = new PluginParameter<Long>(
1754 11 Jan 06 nicklas 127     "longSection", "Long values", "This section have only long values", null
1754 11 Jan 06 nicklas 128   );
1750 10 Jan 06 nicklas 129
1754 11 Jan 06 nicklas 130   private static final PluginParameter<Long> oneLong = new PluginParameter<Long>(
1754 11 Jan 06 nicklas 131     "oneLong", "One long", "Please enter single long value", new LongParameterType()
1754 11 Jan 06 nicklas 132   );
1754 11 Jan 06 nicklas 133   private static final PluginParameter<Long> manyLongs = new PluginParameter<Long>(
1754 11 Jan 06 nicklas 134     "manyLongs", "Many longs", "Please enter several long values", 
1754 11 Jan 06 nicklas 135     new LongParameterType(1L, 100L, null, false, 0, 0, 0, null)
1754 11 Jan 06 nicklas 136   );
1754 11 Jan 06 nicklas 137   private static final PluginParameter<Long> selectOneLong =  new PluginParameter<Long>(
1754 11 Jan 06 nicklas 138     "selectOneLong", "Select one long", "Please select a single long value", 
1754 11 Jan 06 nicklas 139     new LongParameterType(null, null, null, false, 1, 0, 0, Arrays.asList(1L, 2L, 3L))
1754 11 Jan 06 nicklas 140   );
1754 11 Jan 06 nicklas 141   private static final PluginParameter<Long> selectMultipleLongs =  new PluginParameter<Long>(
1754 11 Jan 06 nicklas 142     "selectMultipleLongs", "Select multiple longs", "Please select any number of long values", 
1754 11 Jan 06 nicklas 143     new LongParameterType(null, null, null, false, 0, 0, 0, Arrays.asList(10L, 20L, 30L, 40L))
1754 11 Jan 06 nicklas 144   );
1754 11 Jan 06 nicklas 145   
1754 11 Jan 06 nicklas 146   private static final PluginParameter<Float> floatSection = new PluginParameter<Float>(
1754 11 Jan 06 nicklas 147     "floatSection", "Float values", "This section have only float values", null
1754 11 Jan 06 nicklas 148   );
1754 11 Jan 06 nicklas 149   private static final PluginParameter<Float> oneFloat = new PluginParameter<Float>(
1754 11 Jan 06 nicklas 150     "oneFloat", "One float", "Please enter single float value", new FloatParameterType()
1754 11 Jan 06 nicklas 151   );
1754 11 Jan 06 nicklas 152   private static final PluginParameter<Float> manyFloats = new PluginParameter<Float>(
1754 11 Jan 06 nicklas 153     "manyFloats", "Many floats", "Please enter several float values", 
1754 11 Jan 06 nicklas 154     new FloatParameterType(1.0f, 100.0f, null, false, 0, 0, 0, null)
1754 11 Jan 06 nicklas 155   );
1754 11 Jan 06 nicklas 156   private static final PluginParameter<Float> selectOneFloat =  new PluginParameter<Float>(
1754 11 Jan 06 nicklas 157     "selectOneFloat", "Select one float", "Please select a single float value", 
1754 11 Jan 06 nicklas 158     new FloatParameterType(null, null, null, false, 1, 0, 0, Arrays.asList(1.1f, 2.2f, 3.3f))
1754 11 Jan 06 nicklas 159   );
1754 11 Jan 06 nicklas 160   private static final PluginParameter<Float> selectMultipleFloats =  new PluginParameter<Float>(
1754 11 Jan 06 nicklas 161     "selectMultipleFloats", "Select multiple floats", "Please select any number of float values", 
1754 11 Jan 06 nicklas 162     new FloatParameterType(null, null, null, false, 0, 0, 0, Arrays.asList(11.1f, 22.2f, 33.3f, 44.4f))
1754 11 Jan 06 nicklas 163   );
1754 11 Jan 06 nicklas 164   
1754 11 Jan 06 nicklas 165   private static final PluginParameter<Double> doubleSection = new PluginParameter<Double>(
1754 11 Jan 06 nicklas 166     "doubleSection", "Double values", "This section have only double values", null
1754 11 Jan 06 nicklas 167   );
1754 11 Jan 06 nicklas 168   private static final PluginParameter<Double> oneDouble = new PluginParameter<Double>(
1754 11 Jan 06 nicklas 169     "oneDouble", "One double", "Please enter single double value", new DoubleParameterType()
1754 11 Jan 06 nicklas 170   );
1754 11 Jan 06 nicklas 171   private static final PluginParameter<Double> manyDoubles = new PluginParameter<Double>(
1754 11 Jan 06 nicklas 172     "manyDoubles", "Many doubles", "Please enter several double values", 
1754 11 Jan 06 nicklas 173     new DoubleParameterType(1.0, 100.0, null, false, 0, 0, 0, null)
1754 11 Jan 06 nicklas 174   );
1754 11 Jan 06 nicklas 175   private static final PluginParameter<Double> selectOneDouble =  new PluginParameter<Double>(
1754 11 Jan 06 nicklas 176     "selectOneDouble", "Select one double", "Please select a single double value", 
1754 11 Jan 06 nicklas 177     new DoubleParameterType(null, null, null, false, 1, 0, 0, Arrays.asList(1.1, 2.2, 3.3))
1754 11 Jan 06 nicklas 178   );
1754 11 Jan 06 nicklas 179   private static final PluginParameter<Double> selectMultipleDoubles =  new PluginParameter<Double>(
1754 11 Jan 06 nicklas 180     "selectMultipleDoubles", "Select multiple doubles", "Please select any number of double values", 
1754 11 Jan 06 nicklas 181     new DoubleParameterType(null, null, null, false, 0, 0, 0, Arrays.asList(11.1, 22.2, 33.3, 44.4))
1754 11 Jan 06 nicklas 182   );
1754 11 Jan 06 nicklas 183
1754 11 Jan 06 nicklas 184   private static final PluginParameter<Date> dateSection = new PluginParameter<Date>(
5437 01 Oct 10 nicklas 185     "dateSection", "Date values", "This section have only date values", null
1754 11 Jan 06 nicklas 186   );
5437 01 Oct 10 nicklas 187
1754 11 Jan 06 nicklas 188   private static final List<Date> dates = Arrays.asList(
5437 01 Oct 10 nicklas 189     DateUtil.parseString("2005-11-24"),
5437 01 Oct 10 nicklas 190     DateUtil.parseString("2006-11-24"),
5437 01 Oct 10 nicklas 191     DateUtil.parseString("2007-11-24")
5437 01 Oct 10 nicklas 192   );
1754 11 Jan 06 nicklas 193   private static final PluginParameter<Date> oneDate = new PluginParameter<Date>(
5437 01 Oct 10 nicklas 194     "oneDate", "One date", "Please enter single date value", new DateParameterType()
1754 11 Jan 06 nicklas 195   );
1754 11 Jan 06 nicklas 196   private static final PluginParameter<Date> manyDates = new PluginParameter<Date>(
1754 11 Jan 06 nicklas 197     "manyDates", "Many dates", "Please enter several date values", 
1754 11 Jan 06 nicklas 198     new DateParameterType(null, false, 0, 0, 0, null)
1754 11 Jan 06 nicklas 199   );
1754 11 Jan 06 nicklas 200   private static final PluginParameter<Date> selectOneDate =  new PluginParameter<Date>(
1754 11 Jan 06 nicklas 201     "selectOneDate", "Select one date", "Please select a single date value", 
1754 11 Jan 06 nicklas 202     new DateParameterType(null, false, 1, 0, 0, dates)
1754 11 Jan 06 nicklas 203   );
1754 11 Jan 06 nicklas 204   private static final PluginParameter<Date> selectMultipleDates =  new PluginParameter<Date>(
1754 11 Jan 06 nicklas 205     "selectMultipleDates", "Select multiple dates", "Please select any number of date values", 
1754 11 Jan 06 nicklas 206     new DateParameterType(null, false, 0, 0, 0, dates)
1754 11 Jan 06 nicklas 207   );
1754 11 Jan 06 nicklas 208
5437 01 Oct 10 nicklas 209   private static final PluginParameter<Date> timestampSection = new PluginParameter<Date>(
5437 01 Oct 10 nicklas 210       "timestampSection", "Timestamp values", "This section have only timestamp values", null
5437 01 Oct 10 nicklas 211     );
5437 01 Oct 10 nicklas 212   private static final List<Date> timestamps = Arrays.asList(
5437 01 Oct 10 nicklas 213     DateUtil.parseTimestamp("2005-11-24 12:12:12"),
5437 01 Oct 10 nicklas 214     DateUtil.parseTimestamp("2006-11-24 13:13:13"),
5437 01 Oct 10 nicklas 215     DateUtil.parseTimestamp("2007-11-24 14:14:14")
5437 01 Oct 10 nicklas 216   );
5437 01 Oct 10 nicklas 217   private static final PluginParameter<Date> oneTimestamp = new PluginParameter<Date>(
5437 01 Oct 10 nicklas 218     "oneTimestamp", "One timestamp", "Please enter single timestamp value", new TimestampParameterType()
5437 01 Oct 10 nicklas 219   );
5437 01 Oct 10 nicklas 220   private static final PluginParameter<Date> manyTimestamps = new PluginParameter<Date>(
5437 01 Oct 10 nicklas 221     "manyTimestamps", "Many timestamps", "Please enter several timestamp values", 
5437 01 Oct 10 nicklas 222     new TimestampParameterType(null, false, 0, 0, 0, null)
5437 01 Oct 10 nicklas 223   );
5437 01 Oct 10 nicklas 224   private static final PluginParameter<Date> selectOneTimestamp =  new PluginParameter<Date>(
5437 01 Oct 10 nicklas 225     "selectOneTimestamp", "Select one timestamp", "Please select a single timestamp value", 
5437 01 Oct 10 nicklas 226     new TimestampParameterType(null, false, 1, 0, 0, timestamps)
5437 01 Oct 10 nicklas 227   );
5437 01 Oct 10 nicklas 228   private static final PluginParameter<Date> selectMultipleTimestamps =  new PluginParameter<Date>(
5437 01 Oct 10 nicklas 229     "selectMultipleTimestamps", "Select multiple timestamps", "Please select any number of timestamp values", 
5437 01 Oct 10 nicklas 230     new TimestampParameterType(null, false, 0, 0, 0, timestamps)
5437 01 Oct 10 nicklas 231   );
5437 01 Oct 10 nicklas 232   
1754 11 Jan 06 nicklas 233   private static final PluginParameter<Boolean> booleanSection = new PluginParameter<Boolean>(
1754 11 Jan 06 nicklas 234     "booleanSection", "Boolean values", "This section have only boolean values", null
1754 11 Jan 06 nicklas 235   );
1754 11 Jan 06 nicklas 236   private static final PluginParameter<Boolean> oneBoolean = new PluginParameter<Boolean>(
1754 11 Jan 06 nicklas 237     "oneBoolean", "One boolean", "Please enter single boolean value", new BooleanParameterType()
1754 11 Jan 06 nicklas 238   );
1754 11 Jan 06 nicklas 239
1759 12 Jan 06 nicklas 240   private static final PluginParameter<String> itemSection = new PluginParameter<String>(
1759 12 Jan 06 nicklas 241     "itemSection", "Item values", "This section have only item values", null
1759 12 Jan 06 nicklas 242   );
1759 12 Jan 06 nicklas 243
1759 12 Jan 06 nicklas 244   private static final PluginParameter<File> oneFile = new PluginParameter<File>(
1759 12 Jan 06 nicklas 245     "oneFile", "One file", "Please enter single file value", new FileParameterType()
1759 12 Jan 06 nicklas 246   );
1759 12 Jan 06 nicklas 247   private static final PluginParameter<File> manyFiles = new PluginParameter<File>(
1759 12 Jan 06 nicklas 248     "manyFiles", "Many files", "Please enter several file values", 
1759 12 Jan 06 nicklas 249     new FileParameterType(null, false, 0)
1759 12 Jan 06 nicklas 250   );
2147 04 Apr 06 nicklas 251   
2147 04 Apr 06 nicklas 252   private static final PluginParameter<String> oneDirectory = new PluginParameter<String>(
2147 04 Apr 06 nicklas 253     "oneDirectory", "Save to directory", "Please specify the output directory where the plugin should store it's generated files",
2147 04 Apr 06 nicklas 254     new PathParameterType(Path.Type.DIRECTORY)
2147 04 Apr 06 nicklas 255   );
2147 04 Apr 06 nicklas 256   
2147 04 Apr 06 nicklas 257   private static final PluginParameter<String> onePath = new PluginParameter<String>(
2147 04 Apr 06 nicklas 258       "onePath", "Save as", "Please specify the file name where the plugin should store it's output",
2147 04 Apr 06 nicklas 259       new PathParameterType(Path.Type.FILE)
2147 04 Apr 06 nicklas 260     );
2198 27 Apr 06 nicklas 261   
2198 27 Apr 06 nicklas 262   private static final PluginParameter<String> hidden = new PluginParameter<String>(
2198 27 Apr 06 nicklas 263       "hidden", null, null, new StringParameterType(255, "A hidden string", true)
2198 27 Apr 06 nicklas 264     );
1759 12 Jan 06 nicklas 265
1750 10 Jan 06 nicklas 266   private RequestInformation configurePlugin;
1750 10 Jan 06 nicklas 267   private RequestInformation configureJob;
6393 22 Jan 14 nicklas 268   private ThreadSignalHandler signalHandler;
1750 10 Jan 06 nicklas 269
1376 22 Sep 05 nicklas 270   /*
1376 22 Sep 05 nicklas 271     From the Plugin interface
1376 22 Sep 05 nicklas 272     -------------------------------------------
1376 22 Sep 05 nicklas 273   */
6127 14 Sep 12 nicklas 274   @Override
1376 22 Sep 05 nicklas 275   public Plugin.MainType getMainType()
1240 05 Sep 05 enell 276   {
1376 22 Sep 05 nicklas 277     return Plugin.MainType.OTHER;
1240 05 Sep 05 enell 278   }
6127 14 Sep 12 nicklas 279   @Override
2512 10 Aug 06 nicklas 280   public boolean supportsConfigurations()
2512 10 Aug 06 nicklas 281   {
2512 10 Aug 06 nicklas 282     return true;
2512 10 Aug 06 nicklas 283   }
6127 14 Sep 12 nicklas 284   @Override
2512 10 Aug 06 nicklas 285   public boolean requiresConfiguration()
2512 10 Aug 06 nicklas 286   {
2512 10 Aug 06 nicklas 287     return false;
2512 10 Aug 06 nicklas 288   }
1750 10 Jan 06 nicklas 289   
6127 14 Sep 12 nicklas 290   @Override
1750 10 Jan 06 nicklas 291   public void init(SessionControl sc, ParameterValues configuration, ParameterValues job)
1750 10 Jan 06 nicklas 292     throws BaseException
1750 10 Jan 06 nicklas 293   {
1750 10 Jan 06 nicklas 294     super.init(sc, configuration, job);
1750 10 Jan 06 nicklas 295     ArrayList<PluginParameter<?>> parameters = new ArrayList<PluginParameter<?>>(40);
1754 11 Jan 06 nicklas 296     parameters.add(stringSection);
1750 10 Jan 06 nicklas 297     parameters.add(oneString);
1750 10 Jan 06 nicklas 298     parameters.add(manyStrings);
1750 10 Jan 06 nicklas 299     parameters.add(selectOneString);
1750 10 Jan 06 nicklas 300     parameters.add(selectMultipleStrings);
2455 30 Jun 06 nicklas 301     parameters.add(oneText);
1750 10 Jan 06 nicklas 302     
1754 11 Jan 06 nicklas 303     parameters.add(integerSection);
1750 10 Jan 06 nicklas 304     parameters.add(oneInteger);
1750 10 Jan 06 nicklas 305     parameters.add(manyIntegers);
1750 10 Jan 06 nicklas 306     parameters.add(selectOneInteger);
1750 10 Jan 06 nicklas 307     parameters.add(selectMultipleIntegers);
1754 11 Jan 06 nicklas 308     
1754 11 Jan 06 nicklas 309     parameters.add(longSection);
1754 11 Jan 06 nicklas 310     parameters.add(oneLong);
1754 11 Jan 06 nicklas 311     parameters.add(manyLongs);
1754 11 Jan 06 nicklas 312     parameters.add(selectOneLong);
1754 11 Jan 06 nicklas 313     parameters.add(selectMultipleLongs);
1754 11 Jan 06 nicklas 314     
1754 11 Jan 06 nicklas 315     parameters.add(floatSection);
1754 11 Jan 06 nicklas 316     parameters.add(oneFloat);
1754 11 Jan 06 nicklas 317     parameters.add(manyFloats);
1754 11 Jan 06 nicklas 318     parameters.add(selectOneFloat);
1754 11 Jan 06 nicklas 319     parameters.add(selectMultipleFloats);
1754 11 Jan 06 nicklas 320     
1754 11 Jan 06 nicklas 321     parameters.add(doubleSection);
1754 11 Jan 06 nicklas 322     parameters.add(oneDouble);
1754 11 Jan 06 nicklas 323     parameters.add(manyDoubles);
1754 11 Jan 06 nicklas 324     parameters.add(selectOneDouble);
1754 11 Jan 06 nicklas 325     parameters.add(selectMultipleDoubles);
1754 11 Jan 06 nicklas 326     
1754 11 Jan 06 nicklas 327     parameters.add(dateSection);
1754 11 Jan 06 nicklas 328     parameters.add(oneDate);
1754 11 Jan 06 nicklas 329     parameters.add(manyDates);
1754 11 Jan 06 nicklas 330     parameters.add(selectOneDate);
1754 11 Jan 06 nicklas 331     parameters.add(selectMultipleDates);
5437 01 Oct 10 nicklas 332
5437 01 Oct 10 nicklas 333     parameters.add(timestampSection);
5437 01 Oct 10 nicklas 334     parameters.add(oneTimestamp);
5437 01 Oct 10 nicklas 335     parameters.add(manyTimestamps);
5437 01 Oct 10 nicklas 336     parameters.add(selectOneTimestamp);
5437 01 Oct 10 nicklas 337     parameters.add(selectMultipleTimestamps);
1754 11 Jan 06 nicklas 338     
1754 11 Jan 06 nicklas 339     parameters.add(booleanSection);
1754 11 Jan 06 nicklas 340     parameters.add(oneBoolean);
1759 12 Jan 06 nicklas 341     
1759 12 Jan 06 nicklas 342     parameters.add(itemSection);
1759 12 Jan 06 nicklas 343     
1759 12 Jan 06 nicklas 344     DbControl dc = sc.newDbControl();
1759 12 Jan 06 nicklas 345     ItemQuery<MimeType> query = MimeType.getQuery();
1759 12 Jan 06 nicklas 346     query.order(Orders.asc(Hql.property("name")));
1759 12 Jan 06 nicklas 347     List<MimeType> mimeTypes = new ArrayList<MimeType>(query.list(dc));
1759 12 Jan 06 nicklas 348     dc.close();
1759 12 Jan 06 nicklas 349     
1759 12 Jan 06 nicklas 350     PluginParameter<MimeType> selectOneMimeTypes = new PluginParameter<MimeType>(
1759 12 Jan 06 nicklas 351       "oneMimeType", "Select one MIME type", "Please select a single MIME type value", 
1759 12 Jan 06 nicklas 352       new ItemParameterType<MimeType>(MimeType.class, null, false, 1, mimeTypes)
1759 12 Jan 06 nicklas 353     );
1759 12 Jan 06 nicklas 354     PluginParameter<MimeType> selectMultipleMimeTypes = new PluginParameter<MimeType>(
1759 12 Jan 06 nicklas 355       "multipleMimeTypes", "Select multiple MIME types", "Please select any number of MIME type values", 
1759 12 Jan 06 nicklas 356       new ItemParameterType<MimeType>(MimeType.class, null, false, 0, mimeTypes)
1759 12 Jan 06 nicklas 357     );
1759 12 Jan 06 nicklas 358     parameters.add(selectOneMimeTypes);
1759 12 Jan 06 nicklas 359     parameters.add(selectMultipleMimeTypes);
1759 12 Jan 06 nicklas 360     parameters.add(oneFile);
1759 12 Jan 06 nicklas 361     parameters.add(manyFiles);
2147 04 Apr 06 nicklas 362     parameters.add(oneDirectory);
2147 04 Apr 06 nicklas 363     parameters.add(onePath);
2198 27 Apr 06 nicklas 364     parameters.add(hidden);
1750 10 Jan 06 nicklas 365
1750 10 Jan 06 nicklas 366     configurePlugin = new RequestInformation(
1750 10 Jan 06 nicklas 367       Request.COMMAND_CONFIGURE_PLUGIN,
1750 10 Jan 06 nicklas 368       "Configuration settings",
1750 10 Jan 06 nicklas 369       "Please enter values for the following parameters to configure the plugin",
1750 10 Jan 06 nicklas 370       parameters
1750 10 Jan 06 nicklas 371     );
1750 10 Jan 06 nicklas 372     
1750 10 Jan 06 nicklas 373     configureJob = new RequestInformation(
1787 18 Jan 06 nicklas 374       Request.COMMAND_CONFIGURE_JOB,
1750 10 Jan 06 nicklas 375       "Job settings",
1750 10 Jan 06 nicklas 376       "Please enter values for the following parameters to configure the job",
6393 22 Jan 14 nicklas 377       parameters
1750 10 Jan 06 nicklas 378     );
1750 10 Jan 06 nicklas 379   }
1750 10 Jan 06 nicklas 380   
1240 05 Sep 05 enell 381   /**
1240 05 Sep 05 enell 382     Just print some info to the ProgressReporter for the Request COMMAND_EXECUTE.
1240 05 Sep 05 enell 383   */
6127 14 Sep 12 nicklas 384   @Override
1376 22 Sep 05 nicklas 385   public void run(Request request, Response response, ProgressReporter progress)
1240 05 Sep 05 enell 386   {
6393 22 Jan 14 nicklas 387     if (signalHandler != null) 
6393 22 Jan 14 nicklas 388     {
6393 22 Jan 14 nicklas 389       signalHandler.setWorkerThread(null);
6393 22 Jan 14 nicklas 390     }
1240 05 Sep 05 enell 391     String command = request.getCommand();
1240 05 Sep 05 enell 392     if (command.equals(Request.COMMAND_EXECUTE))
1240 05 Sep 05 enell 393     {
7749 26 Sep 19 nicklas 394       boolean isSilent = Boolean.TRUE.equals(request.getParameterValue("isSilent"));
1240 05 Sep 05 enell 395       progress.display(0, "starting");
1264 06 Sep 05 enell 396       try
1240 05 Sep 05 enell 397       {
1264 06 Sep 05 enell 398         for (int i = 1; i <= 4; i++)
1264 06 Sep 05 enell 399         {
6393 22 Jan 14 nicklas 400           progress.display(20*i, "processing");
7749 26 Sep 19 nicklas 401           if (!isSilent) Thread.sleep(5000);
1264 06 Sep 05 enell 402           progress.append("...");
1264 06 Sep 05 enell 403         }
6393 22 Jan 14 nicklas 404         progress.display(100, "done\n");
1622 16 Nov 05 nicklas 405         response.setDone("Ok");
1240 05 Sep 05 enell 406       }
6393 22 Jan 14 nicklas 407       catch (InterruptedException ex)
1264 06 Sep 05 enell 408       {
6393 22 Jan 14 nicklas 409         response.setError("Aborted by user", Arrays.asList(ex));
6393 22 Jan 14 nicklas 410       }
6393 22 Jan 14 nicklas 411       catch (Exception e)
6393 22 Jan 14 nicklas 412       {
1264 06 Sep 05 enell 413         response.setError("NullPlugin.invoke()#Request.COMMAND_EXECUTE", Arrays.asList(e));
1264 06 Sep 05 enell 414       }
1240 05 Sep 05 enell 415     }
1376 22 Sep 05 nicklas 416   }
1376 22 Sep 05 nicklas 417   // -------------------------------------------
1376 22 Sep 05 nicklas 418   /*
1376 22 Sep 05 nicklas 419     From the InteractivePlugin interface
1376 22 Sep 05 nicklas 420     -------------------------------------------
1376 22 Sep 05 nicklas 421   */
6127 14 Sep 12 nicklas 422   @Override
1701 09 Dec 05 nicklas 423   public Set<GuiContext> getGuiContexts()
1376 22 Sep 05 nicklas 424   {
1787 18 Jan 06 nicklas 425     return guiContexts;
1376 22 Sep 05 nicklas 426   }
6127 14 Sep 12 nicklas 427   @Override
2195 26 Apr 06 nicklas 428   public String isInContext(GuiContext context, Object item)
1701 09 Dec 05 nicklas 429   {
2195 26 Apr 06 nicklas 430     return null;
1701 09 Dec 05 nicklas 431   }
1376 22 Sep 05 nicklas 432   /**
1376 22 Sep 05 nicklas 433     Returns parameter configPlugin or configJob for Request COMMAND_CONFIGURE_PLUGIN 
1376 22 Sep 05 nicklas 434     respectively COMMAND_CONFIGURE_JOB.
1376 22 Sep 05 nicklas 435   */
6127 14 Sep 12 nicklas 436   @Override
1789 18 Jan 06 nicklas 437   public RequestInformation getRequestInformation(GuiContext context, String command)
1376 22 Sep 05 nicklas 438   {
1750 10 Jan 06 nicklas 439     RequestInformation requestInformation = null;
1376 22 Sep 05 nicklas 440     if (command.equals(Request.COMMAND_CONFIGURE_PLUGIN))
1251 06 Sep 05 enell 441     {
1750 10 Jan 06 nicklas 442       requestInformation = configurePlugin;
1376 22 Sep 05 nicklas 443     }
1376 22 Sep 05 nicklas 444     else if (command.equals(Request.COMMAND_CONFIGURE_JOB))
1376 22 Sep 05 nicklas 445     {
1750 10 Jan 06 nicklas 446       requestInformation = configureJob;
1376 22 Sep 05 nicklas 447     }
1750 10 Jan 06 nicklas 448     return requestInformation;
1376 22 Sep 05 nicklas 449   }
1376 22 Sep 05 nicklas 450
6127 14 Sep 12 nicklas 451   @Override
1789 18 Jan 06 nicklas 452   public void configure(GuiContext context, Request request, Response response)
1376 22 Sep 05 nicklas 453   {
1376 22 Sep 05 nicklas 454     String command = request.getCommand();
1750 10 Jan 06 nicklas 455     
1750 10 Jan 06 nicklas 456     List<PluginParameter<?>> parameters = null;
1750 10 Jan 06 nicklas 457     ParameterValues values = null;
1750 10 Jan 06 nicklas 458     
1376 22 Sep 05 nicklas 459     if (command.equals(Request.COMMAND_CONFIGURE_PLUGIN))
1376 22 Sep 05 nicklas 460     {
1750 10 Jan 06 nicklas 461       parameters = configurePlugin.getParameters();
1750 10 Jan 06 nicklas 462       values = configuration;
1251 06 Sep 05 enell 463     }
1264 06 Sep 05 enell 464     else if (command.equals(Request.COMMAND_CONFIGURE_JOB))
1264 06 Sep 05 enell 465     {
1750 10 Jan 06 nicklas 466       parameters = configureJob.getParameters();
1750 10 Jan 06 nicklas 467       values = job;
1264 06 Sep 05 enell 468     }
1750 10 Jan 06 nicklas 469     
1750 10 Jan 06 nicklas 470     List<Throwable> errors = validateRequestParameters(parameters, request);
1750 10 Jan 06 nicklas 471     if (errors != null)
1750 10 Jan 06 nicklas 472     {
1750 10 Jan 06 nicklas 473       response.setError(errors.size()+" invalid parameter(s) were found in the request", errors);
1750 10 Jan 06 nicklas 474       return;
1750 10 Jan 06 nicklas 475     }
1750 10 Jan 06 nicklas 476       
1750 10 Jan 06 nicklas 477     for (PluginParameter<?> pp : parameters)
1750 10 Jan 06 nicklas 478     {
2203 28 Apr 06 nicklas 479       if (pp.getParameterType() != null)
2203 28 Apr 06 nicklas 480       {
2203 28 Apr 06 nicklas 481         storeValues(values, request, pp);
2203 28 Apr 06 nicklas 482       }
1750 10 Jan 06 nicklas 483     }
1750 10 Jan 06 nicklas 484     response.setDone("Plugin configuration complete");
1240 05 Sep 05 enell 485   }
1377 22 Sep 05 nicklas 486   
1377 22 Sep 05 nicklas 487   // -------------------------------------------
1377 22 Sep 05 nicklas 488   /*
6393 22 Jan 14 nicklas 489     From the SignalTarget interface
6393 22 Jan 14 nicklas 490     -------------------------------------------
6393 22 Jan 14 nicklas 491   */
6393 22 Jan 14 nicklas 492   @Override
6393 22 Jan 14 nicklas 493   public SignalHandler getSignalHandler()
6393 22 Jan 14 nicklas 494   {
6393 22 Jan 14 nicklas 495     signalHandler = new ThreadSignalHandler();
6393 22 Jan 14 nicklas 496     return signalHandler;
6393 22 Jan 14 nicklas 497   }
6393 22 Jan 14 nicklas 498   // -------------------------------------------
6393 22 Jan 14 nicklas 499   /*
1377 22 Sep 05 nicklas 500     From the NullPluginInterface interface
1377 22 Sep 05 nicklas 501     -------------------------------------------
1377 22 Sep 05 nicklas 502   */
6127 14 Sep 12 nicklas 503   @Override
1377 22 Sep 05 nicklas 504   public void downloadFromRepository(String repositoryPath)
1377 22 Sep 05 nicklas 505   {}
1750 10 Jan 06 nicklas 506   // -------------------------------------------
1240 05 Sep 05 enell 507
1377 22 Sep 05 nicklas 508
1240 05 Sep 05 enell 509 }