001/*
002 * Copyright (c) 2003-2010 The Regents of the University of California.
003 * All rights reserved.
004 *
005 * '$Author: welker $'
006 * '$Date: 2010-05-06 05:21:26 +0000 (Thu, 06 May 2010) $' 
007 * '$Revision: 24234 $'
008 * 
009 * Permission is hereby granted, without written agreement and without
010 * license or royalty fees, to use, copy, modify, and distribute this
011 * software and its documentation for any purpose, provided that the above
012 * copyright notice and the following two paragraphs appear in all copies
013 * of this software.
014 *
015 * IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY
016 * FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES
017 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF
018 * THE UNIVERSITY OF CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF
019 * SUCH DAMAGE.
020 *
021 * THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES,
022 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
023 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE
024 * PROVIDED HEREUNDER IS ON AN "AS IS" BASIS, AND THE UNIVERSITY OF
025 * CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES,
026 * ENHANCEMENTS, OR MODIFICATIONS.
027 *
028 */
029
030package org.kepler.objectmanager.data;
031
032import java.util.Vector;
033
034/**
035 * @author tao This class store the info for Enumerated domain info
036 */
037public class EnumeratedDomain implements Domain {
038        private String numberType;
039        private DataType dataType;
040        private DataTypeResolver resolver = DataTypeResolver.instanceOf();
041        private Vector info;
042
043        /**
044         * Constructor for this domain
045         * 
046         * @throws UnresolvableTypeException
047         */
048        public EnumeratedDomain() throws UnresolvableTypeException {
049                numberType = DataType.STRINGTYPE;
050                dataType = resolver.resolveDataType(numberType, null, null);
051        }
052
053        /**
054         * Method to get data type
055         */
056        public DataType getDataType() {
057                return dataType;
058        }
059
060        /**
061         * @param info
062         *            The info to set.
063         */
064        public void setInfo(Vector info) {
065                this.info = info;
066        }
067
068        /**
069         * Method getDomainInfo. get the ith domain info item, or an empty string if
070         * i is greater than the number of items
071         * 
072         * @param i
073         * @return String
074         */
075        public String getDomainInfo(int i) {
076                if (i < info.size()) {
077                        Object o = info.get(i);
078                        if (o != null) {
079                                return o.toString();
080                        }
081                }
082                return "";
083        }
084
085        /**
086         * Method getDomainInfoCount. get the number of items in the info vector
087         * 
088         * @return int
089         */
090        public int getDomainInfoCount() {
091                return info.size();
092        }
093
094}