~ubuntu-branches/ubuntu/trusty/cdk/trusty-proposed

« back to all changes in this revision

Viewing changes to src/org/openscience/cdk/io/setting/OptionIOSetting.java

  • Committer: Bazaar Package Importer
  • Author(s): Paul Cager
  • Date: 2008-04-09 21:17:53 UTC
  • Revision ID: james.westby@ubuntu.com-20080409211753-46lmjw5z8mx5pd8d
Tags: upstream-1.0.2
ImportĀ upstreamĀ versionĀ 1.0.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* $RCSfile$
 
2
 * $Author: egonw $
 
3
 * $Date: 2007-01-04 18:46:10 +0100 (Thu, 04 Jan 2007) $
 
4
 * $Revision: 7636 $
 
5
 *
 
6
 * Copyright (C) 2003-2007  The CDK Development Team
 
7
 *
 
8
 * Contact: cdk-devel@lists.sourceforge.net
 
9
 *
 
10
 *  This library is free software; you can redistribute it and/or
 
11
 *  modify it under the terms of the GNU Lesser General Public
 
12
 *  License as published by the Free Software Foundation; either
 
13
 *  version 2.1 of the License, or (at your option) any later version.
 
14
 *
 
15
 *  This library is distributed in the hope that it will be useful,
 
16
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
17
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 
18
 *  Lesser General Public License for more details.
 
19
 *
 
20
 *  You should have received a copy of the GNU Lesser General Public
 
21
 *  License along with this library; if not, write to the Free Software
 
22
 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 
23
 */
 
24
package org.openscience.cdk.io.setting;
 
25
 
 
26
import java.util.Vector;
 
27
 
 
28
import org.openscience.cdk.exception.CDKException;
 
29
 
 
30
/**
 
31
 * An class for a reader setting which must be found in the list 
 
32
 * of possible settings.
 
33
 *
 
34
 * @cdk.module io
 
35
 *
 
36
 * @author Egon Willighagen <egonw@sci.kun.nl>
 
37
 */
 
38
public class OptionIOSetting extends IOSetting {
 
39
 
 
40
    private Vector settings;
 
41
    
 
42
    /**
 
43
     * OptionIOSetting is IOSetting for which the value must be
 
44
     * in the list of possible options.
 
45
     */
 
46
    public OptionIOSetting(String name, int level, 
 
47
                           String question, Vector settings, 
 
48
                           String defaultSetting) {
 
49
        super(name, level, question, defaultSetting);
 
50
        this.settings = settings;
 
51
        if (!this.settings.contains(defaultSetting)) {
 
52
            this.settings.add(defaultSetting);
 
53
        }
 
54
    }
 
55
    
 
56
    /**
 
57
     * Sets the setting for a certain question. It will throw
 
58
     * a CDKException when the setting is not valid.    
 
59
     *
 
60
     */
 
61
    public void setSetting(String setting) throws CDKException {
 
62
        if (settings.contains(setting)) {
 
63
            this.setting = setting;
 
64
        } else {
 
65
            throw new CDKException("Setting " + setting + " is not allowed.");
 
66
        }
 
67
    }
 
68
 
 
69
    /**
 
70
     * Sets the setting for a certain question. It will throw
 
71
     * a CDKException when the setting is not valid. The first setting is
 
72
     * setting 1.
 
73
     *
 
74
     */
 
75
    public void setSetting(int setting) throws CDKException {
 
76
        if (setting < settings.size() + 1 && setting > 0) {
 
77
            this.setting = (String)settings.elementAt(setting-1);
 
78
        } else {
 
79
            throw new CDKException("Setting " + setting + " does not exist.");
 
80
        }
 
81
    }
 
82
    
 
83
    /**
 
84
     * Returns a Vector of Strings containing all possible options.
 
85
     */
 
86
    public Vector getOptions() {
 
87
        return settings;
 
88
    }
 
89
    
 
90
}