001        package com.croftsoft.apps.ajgp.data;
002        
003        import java.util.*;
004        import javax.xml.bind.annotation.*;
005    
006        import com.croftsoft.core.lang.NullArgumentException;
007    
008        /*********************************************************************
009        * Bean implementation of interface of EnumData.
010        *
011        * @version
012        *   $Id: EnumDataBean.java,v 1.2 2007/06/29 03:19:27 croft Exp $
013        * @since
014        *   2007-06-28
015        * @author
016        *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
017        *********************************************************************/
018    
019        @XmlRootElement
020        public final class  EnumDataBean
021          implements EnumData
022        ////////////////////////////////////////////////////////////////////////
023        ////////////////////////////////////////////////////////////////////////
024        {
025          
026        private Map<EnumInteger, Integer>  integerMap;
027        
028        private Map<EnumString,  String>   stringMap;
029          
030        ////////////////////////////////////////////////////////////////////////
031        // constructor methods
032        ////////////////////////////////////////////////////////////////////////
033          
034        public  EnumDataBean ( )
035        ////////////////////////////////////////////////////////////////////////
036        {
037          // a no-argument constructor for JAXB conversion
038        }
039          
040        ////////////////////////////////////////////////////////////////////////
041        // interface EnumData accessor methods
042        ////////////////////////////////////////////////////////////////////////
043    
044        public Integer  get ( final EnumInteger  enumInteger )
045        ////////////////////////////////////////////////////////////////////////
046        {
047          NullArgumentException.check ( enumInteger );
048          
049          return integerMap == null ? null : integerMap.get ( enumInteger );
050        }
051        
052        public String  get ( final EnumString  enumString )
053        ////////////////////////////////////////////////////////////////////////
054        {
055          NullArgumentException.check ( enumString );
056          
057          return stringMap == null ? null : stringMap.get ( enumString );
058        }
059    
060        ////////////////////////////////////////////////////////////////////////
061        // interface EnumData mutator methods
062        ////////////////////////////////////////////////////////////////////////
063    
064        public void  set (
065          final EnumInteger  enumInteger,
066          final Integer      value )
067        ////////////////////////////////////////////////////////////////////////
068        {
069          NullArgumentException.check ( enumInteger );
070          
071          if ( integerMap == null )
072          {
073            integerMap
074              = new EnumMap<EnumInteger, Integer> ( EnumInteger.class );
075          }
076          
077          if ( value == null )
078          {
079            integerMap.remove ( enumInteger );
080          }
081          else
082          {
083            integerMap.put ( enumInteger, value );
084          }
085        }
086        
087        public void  set (
088          final EnumString  enumString,
089          final String      value )
090        ////////////////////////////////////////////////////////////////////////
091        {
092          NullArgumentException.check ( enumString );
093          
094          if ( stringMap == null )
095          {
096            stringMap = new EnumMap<EnumString, String> ( EnumString.class );
097          }
098          
099          if ( value == null )
100          {
101            stringMap.remove ( enumString );
102          }
103          else
104          {
105            stringMap.put ( enumString, value );
106          }
107        }
108    
109        ////////////////////////////////////////////////////////////////////////
110        // JAXB accessor methods
111        ////////////////////////////////////////////////////////////////////////
112        
113        public Map<EnumInteger, Integer>  getIntegerMap ( )
114        ////////////////////////////////////////////////////////////////////////
115        {
116          return integerMap;
117        }
118        
119        public Map<EnumString, String>  getStringMap ( )
120        ////////////////////////////////////////////////////////////////////////
121        {
122          return stringMap;
123        }
124        
125        ////////////////////////////////////////////////////////////////////////
126        // JAXB mutator methods
127        ////////////////////////////////////////////////////////////////////////
128        
129        public void  setIntegerMap (
130          final Map<EnumInteger, Integer>  integerMap )
131        ////////////////////////////////////////////////////////////////////////
132        {
133          this.integerMap = integerMap;
134        }
135        
136        public void  setStringMap (
137          final Map<EnumString, String>  stringMap )
138        ////////////////////////////////////////////////////////////////////////
139        {
140          this.stringMap = stringMap;
141        }
142        
143        ////////////////////////////////////////////////////////////////////////
144        ////////////////////////////////////////////////////////////////////////
145        }