001    /**
002     *  Licensed to the Apache Software Foundation (ASF) under one or more
003     *  contributor license agreements.  See the NOTICE file distributed with
004     *  this work for additional information regarding copyright ownership.
005     *  The ASF licenses this file to You under the Apache License, Version 2.0
006     *  (the "License"); you may not use this file except in compliance with
007     *  the License.  You may obtain a copy of the License at
008     *
009     *     http://www.apache.org/licenses/LICENSE-2.0
010     *
011     *  Unless required by applicable law or agreed to in writing, software
012     *  distributed under the License is distributed on an "AS IS" BASIS,
013     *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014     *  See the License for the specific language governing permissions and
015     *  limitations under the License.
016     */
017    package org.apache.geronimo.connector.deployment.jsr88;
018    
019    import org.apache.geronimo.deployment.plugin.XmlBeanSupport;
020    import org.apache.geronimo.xbeans.geronimo.GerSinglepoolType;
021    import org.apache.xmlbeans.SchemaTypeLoader;
022    
023    /**
024     * Settings for connectionmanager/single-pool
025     *
026     * @version $Rev: 476049 $ $Date: 2006-11-16 23:35:17 -0500 (Thu, 16 Nov 2006) $
027     */
028    public class SinglePool extends XmlBeanSupport {
029        public SinglePool() {
030            super(null);
031        }
032        public SinglePool(GerSinglepoolType pool) {
033            super(null);
034            configure(pool);
035        }
036    
037        protected GerSinglepoolType getSinglePool() {
038            return (GerSinglepoolType) getXmlObject();
039        }
040    
041        protected void configure(GerSinglepoolType pool) {
042            setXmlObject(pool);
043            if(!isSelectOneAssumeMatch() && !isMatchOne() && !isMatchAll()) {
044                setMatchOne(true);
045            }
046        }
047    
048        // ----------------------- JavaBean Properties for single-pool ----------------------
049    
050        public Integer getMinSize() {
051            return getSinglePool().isSetMinSize() ? new Integer(getSinglePool().getMinSize()) : null;
052        }
053    
054        public void setMinSize(Integer value) {
055            Integer old = getMinSize();
056            if(value == null) {
057                if(getSinglePool().isSetMinSize()) {
058                    getSinglePool().unsetMinSize();
059                }
060            } else {
061                getSinglePool().setMinSize(value.intValue());
062            }
063            pcs.firePropertyChange("minSize", old, value);
064        }
065    
066        public Integer getMaxSize() {
067            return getSinglePool().isSetMaxSize() ? new Integer(getSinglePool().getMaxSize()) : null;
068        }
069    
070        public void setMaxSize(Integer value) {
071            Integer old = getMaxSize();
072            if(value == null) {
073                if(getSinglePool().isSetMaxSize()) {
074                    getSinglePool().unsetMaxSize();
075                }
076            } else {
077                getSinglePool().setMaxSize(value.intValue());
078            }
079            pcs.firePropertyChange("maxSize", old, value);
080        }
081    
082        public Integer getBlockingTimeoutMillis() {
083            return getSinglePool().isSetBlockingTimeoutMilliseconds() ? new Integer(getSinglePool().getBlockingTimeoutMilliseconds()) : null;
084        }
085    
086        public void setBlockingTimeoutMillis(Integer value) {
087            Integer old = getBlockingTimeoutMillis();
088            if(value == null) {
089                if(getSinglePool().isSetBlockingTimeoutMilliseconds()) {
090                    getSinglePool().unsetBlockingTimeoutMilliseconds();
091                }
092            } else {
093                getSinglePool().setBlockingTimeoutMilliseconds(value.intValue());
094            }
095            pcs.firePropertyChange("blockingTimeoutMillis", old, value);
096        }
097    
098        public Integer getIdleTimeoutMinutes() {
099            return getSinglePool().isSetIdleTimeoutMinutes() ? new Integer(getSinglePool().getIdleTimeoutMinutes()) : null;
100        }
101    
102        public void setIdleTimeoutMinutes(Integer value) {
103            Integer old = getIdleTimeoutMinutes();
104            if(value == null) {
105                if(getSinglePool().isSetIdleTimeoutMinutes()) {
106                    getSinglePool().unsetIdleTimeoutMinutes();
107                }
108            } else {
109                getSinglePool().setIdleTimeoutMinutes(value.intValue());
110            }
111            pcs.firePropertyChange("idleTimeoutMinutes", old, value);
112        }
113    
114        public boolean isMatchAll() {
115            return getSinglePool().isSetMatchAll();
116        }
117    
118        public void setMatchAll(boolean set) {
119            if(set) {
120                if(!isMatchAll()) {
121                    getSinglePool().addNewMatchAll();
122                    pcs.firePropertyChange("matchAll", !set, set);
123                }
124                if(isMatchOne()) setMatchOne(false);
125                if(isSelectOneAssumeMatch()) setSelectOneAssumeMatch(false);
126            } else {
127                if(isMatchAll()) {
128                    getSinglePool().unsetMatchAll();
129                    pcs.firePropertyChange("matchAll", !set, set);
130                }
131            }
132        }
133    
134        public boolean isMatchOne() {
135            return getSinglePool().isSetMatchOne();
136        }
137    
138        public void setMatchOne(boolean set) {
139            if(set) {
140                if(!isMatchOne()) {
141                    getSinglePool().addNewMatchOne();
142                    pcs.firePropertyChange("matchOne", !set, set);
143                }
144                if(isMatchAll()) setMatchAll(false);
145                if(isSelectOneAssumeMatch()) setSelectOneAssumeMatch(false);
146            } else {
147                if(isMatchOne()) {
148                    getSinglePool().unsetMatchOne();
149                    pcs.firePropertyChange("matchOne", !set, set);
150                }
151            }
152        }
153    
154        public boolean isSelectOneAssumeMatch() {
155            return getSinglePool().isSetSelectOneAssumeMatch();
156        }
157    
158        public void setSelectOneAssumeMatch(boolean set) {
159            if(set) {
160                if(!isSelectOneAssumeMatch()) {
161                    getSinglePool().addNewSelectOneAssumeMatch();
162                    pcs.firePropertyChange("selectOneAssumeMatch", !set, set);
163                }
164                if(isMatchAll()) setMatchAll(false);
165                if(isMatchOne()) setMatchOne(false);
166            } else {
167                if(isSelectOneAssumeMatch()) {
168                    getSinglePool().unsetSelectOneAssumeMatch();
169                    pcs.firePropertyChange("selectOneAssumeMatch", !set, set);
170                }
171            }
172        }
173    
174        // ----------------------- End of JavaBean Properties ----------------------
175    
176        protected SchemaTypeLoader getSchemaTypeLoader() {
177            return Connector15DCBRoot.SCHEMA_TYPE_LOADER;
178        }
179    }