001// --------------------------------------------------------------------------------
002// Copyright 2002-2025 Echo Three, LLC
003//
004// Licensed under the Apache License, Version 2.0 (the "License");
005// you may not use this file except in compliance with the License.
006// You may obtain a copy of the License at
007//
008//     http://www.apache.org/licenses/LICENSE-2.0
009//
010// Unless required by applicable law or agreed to in writing, software
011// distributed under the License is distributed on an "AS IS" BASIS,
012// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013// See the License for the specific language governing permissions and
014// limitations under the License.
015// --------------------------------------------------------------------------------
016// Generated File -- DO NOT EDIT BY HAND
017// --------------------------------------------------------------------------------
018
019/**
020 * CommunicationEmailSourceFactory.java
021 */
022
023package com.echothree.model.data.communication.server.factory;
024
025import com.echothree.model.data.communication.common.pk.CommunicationSourcePK;
026import com.echothree.model.data.core.common.pk.ServerPK;
027import com.echothree.model.data.workeffort.common.pk.WorkEffortScopePK;
028import com.echothree.model.data.selector.common.pk.SelectorPK;
029
030import com.echothree.model.data.communication.server.entity.CommunicationSource;
031import com.echothree.model.data.core.server.entity.Server;
032import com.echothree.model.data.workeffort.server.entity.WorkEffortScope;
033import com.echothree.model.data.selector.server.entity.Selector;
034
035import com.echothree.model.data.communication.common.CommunicationEmailSourceConstants;
036import com.echothree.model.data.communication.common.pk.CommunicationEmailSourcePK;
037import com.echothree.model.data.communication.server.value.CommunicationEmailSourceValue;
038import com.echothree.model.data.communication.server.entity.CommunicationEmailSource;
039import com.echothree.util.common.exception.PersistenceDatabaseException;
040import com.echothree.util.common.exception.PersistenceDatabaseUpdateException;
041import com.echothree.util.common.exception.PersistenceNotNullException;
042import com.echothree.util.server.persistence.BaseFactory;
043import com.echothree.util.server.persistence.EntityIdGenerator;
044import com.echothree.util.server.persistence.EntityPermission;
045import com.echothree.util.server.persistence.PersistenceDebugFlags;
046import com.echothree.util.server.persistence.Session;
047import com.echothree.util.server.persistence.ThreadSession;
048import java.sql.PreparedStatement;
049import java.sql.ResultSet;
050import java.sql.SQLException;
051import java.sql.Types;
052import java.io.ByteArrayInputStream;
053import java.io.StringReader;
054import java.util.ArrayList;
055import java.util.Collection;
056import java.util.HashSet;
057import java.util.List;
058import java.util.Map;
059import java.util.Set;
060import javax.enterprise.context.ApplicationScoped;
061import javax.enterprise.inject.spi.CDI;
062import org.apache.commons.logging.Log;
063import org.apache.commons.logging.LogFactory;
064
065@ApplicationScoped
066public class CommunicationEmailSourceFactory
067        implements BaseFactory<CommunicationEmailSourcePK, CommunicationEmailSource> {
068    
069    //final private static Log log = LogFactory.getLog(CommunicationEmailSourceFactory.class);
070    
071    final private static String SQL_SELECT_READ_ONLY = "SELECT cmmnesrc_communicationemailsourceid, cmmnesrc_cmmnsrc_communicationsourceid, cmmnesrc_serv_serverid, cmmnesrc_username, cmmnesrc_password, cmmnesrc_receiveworkeffortscopeid, cmmnesrc_sendworkeffortscopeid, cmmnesrc_reviewemployeeselectorid, cmmnesrc_fromtime, cmmnesrc_thrutime FROM communicationemailsources WHERE cmmnesrc_communicationemailsourceid = ?";
072    final private static String SQL_SELECT_READ_WRITE = "SELECT cmmnesrc_communicationemailsourceid, cmmnesrc_cmmnsrc_communicationsourceid, cmmnesrc_serv_serverid, cmmnesrc_username, cmmnesrc_password, cmmnesrc_receiveworkeffortscopeid, cmmnesrc_sendworkeffortscopeid, cmmnesrc_reviewemployeeselectorid, cmmnesrc_fromtime, cmmnesrc_thrutime FROM communicationemailsources WHERE cmmnesrc_communicationemailsourceid = ? FOR UPDATE";
073    final private static String SQL_INSERT = "INSERT INTO communicationemailsources (cmmnesrc_communicationemailsourceid, cmmnesrc_cmmnsrc_communicationsourceid, cmmnesrc_serv_serverid, cmmnesrc_username, cmmnesrc_password, cmmnesrc_receiveworkeffortscopeid, cmmnesrc_sendworkeffortscopeid, cmmnesrc_reviewemployeeselectorid, cmmnesrc_fromtime, cmmnesrc_thrutime) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
074    final private static String SQL_UPDATE = "UPDATE communicationemailsources SET cmmnesrc_cmmnsrc_communicationsourceid = ?, cmmnesrc_serv_serverid = ?, cmmnesrc_username = ?, cmmnesrc_password = ?, cmmnesrc_receiveworkeffortscopeid = ?, cmmnesrc_sendworkeffortscopeid = ?, cmmnesrc_reviewemployeeselectorid = ?, cmmnesrc_fromtime = ?, cmmnesrc_thrutime = ? WHERE cmmnesrc_communicationemailsourceid = ?";
075    final private static String SQL_DELETE = "DELETE FROM communicationemailsources WHERE cmmnesrc_communicationemailsourceid = ?";
076    final private static String SQL_VALID = "SELECT COUNT(*) FROM communicationemailsources WHERE cmmnesrc_communicationemailsourceid = ?";
077    
078    final private static String PK_COLUMN = "cmmnesrc_communicationemailsourceid";
079    final private static String ALL_COLUMNS = "cmmnesrc_communicationemailsourceid, cmmnesrc_cmmnsrc_communicationsourceid, cmmnesrc_serv_serverid, cmmnesrc_username, cmmnesrc_password, cmmnesrc_receiveworkeffortscopeid, cmmnesrc_sendworkeffortscopeid, cmmnesrc_reviewemployeeselectorid, cmmnesrc_fromtime, cmmnesrc_thrutime";
080    final public static String TABLE_NAME = "communicationemailsources";
081    
082    final public static String CMMNESRC_COMMUNICATIONEMAILSOURCEID = "cmmnesrc_communicationemailsourceid";
083    final public static String CMMNESRC_CMMNSRC_COMMUNICATIONSOURCEID = "cmmnesrc_cmmnsrc_communicationsourceid";
084    final public static String CMMNESRC_SERV_SERVERID = "cmmnesrc_serv_serverid";
085    final public static String CMMNESRC_USERNAME = "cmmnesrc_username";
086    final public static String CMMNESRC_PASSWORD = "cmmnesrc_password";
087    final public static String CMMNESRC_RECEIVEWORKEFFORTSCOPEID = "cmmnesrc_receiveworkeffortscopeid";
088    final public static String CMMNESRC_SENDWORKEFFORTSCOPEID = "cmmnesrc_sendworkeffortscopeid";
089    final public static String CMMNESRC_REVIEWEMPLOYEESELECTORID = "cmmnesrc_reviewemployeeselectorid";
090    final public static String CMMNESRC_FROMTIME = "cmmnesrc_fromtime";
091    final public static String CMMNESRC_THRUTIME = "cmmnesrc_thrutime";
092    
093    final private static EntityIdGenerator entityIdGenerator = new EntityIdGenerator(CommunicationEmailSourceConstants.COMPONENT_VENDOR_NAME, CommunicationEmailSourceConstants.ENTITY_TYPE_NAME);
094    
095    /** Creates a new instance of CommunicationEmailSourceFactory */
096    protected CommunicationEmailSourceFactory() {
097        super();
098    }
099    
100    public static CommunicationEmailSourceFactory getInstance() {
101        return CDI.current().select(CommunicationEmailSourceFactory.class).get();
102    }
103    
104    @Override
105    public String getPKColumn() {
106        return PK_COLUMN;
107    }
108    
109    @Override
110    public String getAllColumns() {
111        return ALL_COLUMNS;
112    }
113    
114    @Override
115    public String getTableName() {
116        return TABLE_NAME;
117    }
118    
119    @Override
120    public String getComponentVendorName() {
121        return CommunicationEmailSourceConstants.COMPONENT_VENDOR_NAME;
122    }
123    
124    @Override
125    public String getEntityTypeName() {
126        return CommunicationEmailSourceConstants.ENTITY_TYPE_NAME;
127    }
128    
129    public PreparedStatement prepareStatement(String query) {
130        return ThreadSession.currentSession().prepareStatement(CommunicationEmailSourceFactory.class, query);
131    }
132    
133    public CommunicationEmailSourcePK getNextPK() {
134        return new CommunicationEmailSourcePK(entityIdGenerator.getNextEntityId());
135    }
136    
137    public Set<CommunicationEmailSourcePK> getPKsFromResultSetAsSet(ResultSet rs)
138            throws PersistenceDatabaseException {
139        Set<CommunicationEmailSourcePK> _result = new HashSet<>();
140        
141        try {
142            while(rs.next()) {
143                _result.add(getPKFromResultSet(rs));
144            }
145        } catch (SQLException se) {
146            throw new PersistenceDatabaseException(se);
147        }
148        
149        return _result;
150    }
151    
152    public java.util.List<CommunicationEmailSourcePK> getPKsFromResultSetAsList(ResultSet rs)
153            throws PersistenceDatabaseException {
154        java.util.List<CommunicationEmailSourcePK> _result = new ArrayList<>();
155        
156        try {
157            while(rs.next()) {
158                _result.add(getPKFromResultSet(rs));
159            }
160        } catch (SQLException se) {
161            throw new PersistenceDatabaseException(se);
162        }
163        
164        return _result;
165    }
166    
167    public CommunicationEmailSourcePK getPKFromResultSet(ResultSet rs)
168            throws PersistenceDatabaseException {
169        CommunicationEmailSourcePK _result;
170        
171        try {
172            long cmmnesrc_communicationemailsourceid = rs.getLong(CMMNESRC_COMMUNICATIONEMAILSOURCEID);
173            Long _entityId = rs.wasNull() ? null : cmmnesrc_communicationemailsourceid;
174            
175            _result = new CommunicationEmailSourcePK(_entityId);
176        } catch (SQLException se) {
177            throw new PersistenceDatabaseException(se);
178        }
179        
180        return _result;
181    }
182    
183    public java.util.List<CommunicationEmailSourceValue> getValuesFromPKs(Session session, Collection<CommunicationEmailSourcePK> pks)
184            throws PersistenceDatabaseException {
185        java.util.List<CommunicationEmailSourceValue> _values = new ArrayList<>(pks.size());
186        
187        for(CommunicationEmailSourcePK _pk: pks) {
188            _values.add(getValueFromPK(session, _pk));
189        }
190        
191        return _values;
192    }
193    
194    public CommunicationEmailSourceValue getValueFromPK(Session session, CommunicationEmailSourcePK pk)
195            throws PersistenceDatabaseException {
196        CommunicationEmailSourceValue _value;
197        
198        // See if we already have the entity in the session cache
199        CommunicationEmailSource _entity = (CommunicationEmailSource)session.getEntity(pk);
200        if(_entity == null)
201            _value = getEntityFromPK(session, EntityPermission.READ_ONLY, pk).getCommunicationEmailSourceValue();
202        else
203            _value = _entity.getCommunicationEmailSourceValue();
204        
205        return _value;
206    }
207    
208    public java.util.List<CommunicationEmailSourceValue> getValuesFromResultSet(Session session, ResultSet rs)
209            throws PersistenceDatabaseException {
210        java.util.List<CommunicationEmailSourceValue> _result = new ArrayList<>();
211        
212        try {
213            while(rs.next()) {
214                _result.add(getValueFromResultSet(session, rs));
215            }
216        } catch (SQLException se) {
217            throw new PersistenceDatabaseException(se);
218        }
219        
220        return _result;
221    }
222    
223    public CommunicationEmailSourceValue getValueFromResultSet(Session session, ResultSet rs)
224            throws PersistenceDatabaseException {
225        CommunicationEmailSourceValue _value;
226        
227        try {
228            Long cmmnesrc_communicationemailsourceid = rs.getLong(CMMNESRC_COMMUNICATIONEMAILSOURCEID);
229            CommunicationEmailSourcePK _pk = new CommunicationEmailSourcePK(cmmnesrc_communicationemailsourceid);
230            
231            // See if we already have the entity in the session cache
232            CommunicationEmailSource _entity = (CommunicationEmailSource)session.getEntity(_pk);
233            
234            if(_entity == null) {
235                Long cmmnesrc_cmmnsrc_communicationsourceid = rs.getLong(CMMNESRC_CMMNSRC_COMMUNICATIONSOURCEID);
236                if(rs.wasNull())
237                    cmmnesrc_cmmnsrc_communicationsourceid = null;
238                
239                Long cmmnesrc_serv_serverid = rs.getLong(CMMNESRC_SERV_SERVERID);
240                if(rs.wasNull())
241                    cmmnesrc_serv_serverid = null;
242                
243                String cmmnesrc_username = rs.getString(CMMNESRC_USERNAME);
244                if(rs.wasNull())
245                    cmmnesrc_username = null;
246                
247                String cmmnesrc_password = rs.getString(CMMNESRC_PASSWORD);
248                if(rs.wasNull())
249                    cmmnesrc_password = null;
250                
251                Long cmmnesrc_receiveworkeffortscopeid = rs.getLong(CMMNESRC_RECEIVEWORKEFFORTSCOPEID);
252                if(rs.wasNull())
253                    cmmnesrc_receiveworkeffortscopeid = null;
254                
255                Long cmmnesrc_sendworkeffortscopeid = rs.getLong(CMMNESRC_SENDWORKEFFORTSCOPEID);
256                if(rs.wasNull())
257                    cmmnesrc_sendworkeffortscopeid = null;
258                
259                Long cmmnesrc_reviewemployeeselectorid = rs.getLong(CMMNESRC_REVIEWEMPLOYEESELECTORID);
260                if(rs.wasNull())
261                    cmmnesrc_reviewemployeeselectorid = null;
262                
263                Long cmmnesrc_fromtime = rs.getLong(CMMNESRC_FROMTIME);
264                if(rs.wasNull())
265                    cmmnesrc_fromtime = null;
266                
267                Long cmmnesrc_thrutime = rs.getLong(CMMNESRC_THRUTIME);
268                if(rs.wasNull())
269                    cmmnesrc_thrutime = null;
270                
271                _value = new CommunicationEmailSourceValue(_pk, new CommunicationSourcePK(cmmnesrc_cmmnsrc_communicationsourceid), new ServerPK(cmmnesrc_serv_serverid), cmmnesrc_username, cmmnesrc_password, new WorkEffortScopePK(cmmnesrc_receiveworkeffortscopeid), new WorkEffortScopePK(cmmnesrc_sendworkeffortscopeid), new SelectorPK(cmmnesrc_reviewemployeeselectorid), cmmnesrc_fromtime, cmmnesrc_thrutime);
272            } else
273                _value = _entity.getCommunicationEmailSourceValue();
274        } catch (SQLException se) {
275            throw new PersistenceDatabaseException(se);
276        }
277        
278        return _value;
279    }
280    
281    public java.util.List<CommunicationEmailSource> getEntitiesFromPKs(EntityPermission entityPermission, Collection<CommunicationEmailSourcePK> pks)
282            throws PersistenceDatabaseException {
283        return getEntitiesFromPKs(ThreadSession.currentSession(), entityPermission, pks);
284    }
285    
286    public java.util.List<CommunicationEmailSource> getEntitiesFromPKs(Session session, EntityPermission entityPermission, Collection<CommunicationEmailSourcePK> pks)
287            throws PersistenceDatabaseException {
288        java.util.List<CommunicationEmailSource> _entities = new ArrayList<>(pks.size());
289        
290        for(CommunicationEmailSourcePK _pk: pks) {
291            _entities.add(getEntityFromPK(session, entityPermission, _pk));
292        }
293        
294        return _entities;
295    }
296    
297    public CommunicationEmailSource getEntityFromValue(EntityPermission entityPermission, CommunicationEmailSourceValue value) {
298        return getEntityFromPK(ThreadSession.currentSession(), entityPermission, value.getPrimaryKey());
299    }
300    
301    public CommunicationEmailSource getEntityFromValue(Session session, EntityPermission entityPermission, CommunicationEmailSourceValue value) {
302        return getEntityFromPK(session, entityPermission, value.getPrimaryKey());
303    }
304    
305    public CommunicationEmailSource getEntityFromPK(EntityPermission entityPermission, CommunicationEmailSourcePK pk)
306            throws PersistenceDatabaseException {
307        return getEntityFromPK(ThreadSession.currentSession(), entityPermission, pk);
308    }
309    
310    public CommunicationEmailSource getEntityFromCache(Session session, CommunicationEmailSourcePK pk) {
311        CommunicationEmailSourceValue _value = (CommunicationEmailSourceValue)session.getValueCache().get(pk);
312    
313        return _value == null ? null : new CommunicationEmailSource(_value, EntityPermission.READ_ONLY);
314    }
315    
316    public CommunicationEmailSource getEntityFromPK(Session session, EntityPermission entityPermission, CommunicationEmailSourcePK pk)
317            throws PersistenceDatabaseException {
318        CommunicationEmailSource _entity;
319        
320        // See if we already have the entity in the session cache
321        _entity = (CommunicationEmailSource)session.getEntity(pk);
322        if(_entity != null) {
323            // If the requested permission is READ_WRITE, and the cached permission is
324            // READ_ONLY, then pretend that the cached object wasn't found, and create
325            // a new entity that is READ_WRITE.
326            if(entityPermission.equals(EntityPermission.READ_WRITE)) {
327                if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY))
328                    _entity = null;
329            }
330        }
331        
332        if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) {
333            _entity = getEntityFromCache(session, pk);
334        }
335        
336        if(_entity == null) {
337            PreparedStatement _ps = session.prepareStatement(entityPermission.equals(EntityPermission.READ_ONLY)? SQL_SELECT_READ_ONLY: SQL_SELECT_READ_WRITE);
338            long _entityId = pk.getEntityId();
339            ResultSet _rs = null;
340            
341            try {
342                _ps.setLong(1, _entityId);
343                _rs = _ps.executeQuery();
344                if(_rs.next()) {
345                    _entity = getEntityFromResultSet(session, entityPermission, _rs);
346                }
347            } catch (SQLException se) {
348                throw new PersistenceDatabaseException(se);
349            } finally {
350                if(_rs != null) {
351                    try {
352                        _rs.close();
353                    } catch (SQLException se) {
354                        // do nothing
355                    }
356                }
357            }
358        }
359        
360        return _entity;
361    }
362    
363    public Set<CommunicationEmailSourcePK> getPKsFromQueryAsSet(PreparedStatement ps, final Object... params)
364            throws PersistenceDatabaseException {
365        Set<CommunicationEmailSourcePK> _pks;
366        ResultSet _rs = null;
367        
368        try {
369            if(params.length != 0) {
370                Session.setQueryParams(ps, params);
371            }
372            
373            _rs = ps.executeQuery();
374            _pks = getPKsFromResultSetAsSet(_rs);
375            _rs.close();
376        } catch (SQLException se) {
377            throw new PersistenceDatabaseException(se);
378        } finally {
379            if(_rs != null) {
380                try {
381                    _rs.close();
382                } catch (SQLException se) {
383                    // do nothing
384                }
385            }
386        }
387        
388        return _pks;
389    }
390    
391    public java.util.List<CommunicationEmailSourcePK> getPKsFromQueryAsList(PreparedStatement ps, final Object... params)
392            throws PersistenceDatabaseException {
393        java.util.List<CommunicationEmailSourcePK> _pks;
394        ResultSet _rs = null;
395        
396        try {
397            if(params.length != 0) {
398                Session.setQueryParams(ps, params);
399            }
400            
401            _rs = ps.executeQuery();
402            _pks = getPKsFromResultSetAsList(_rs);
403            _rs.close();
404        } catch (SQLException se) {
405            throw new PersistenceDatabaseException(se);
406        } finally {
407            if(_rs != null) {
408                try {
409                    _rs.close();
410                } catch (SQLException se) {
411                    // do nothing
412                }
413            }
414        }
415        
416        return _pks;
417    }
418    
419    public CommunicationEmailSourcePK getPKFromQuery(PreparedStatement ps, final Object... params)
420            throws PersistenceDatabaseException {
421        CommunicationEmailSourcePK _pk = null;
422        ResultSet _rs = null;
423        
424        try {
425            if(params.length != 0) {
426                Session.setQueryParams(ps, params);
427            }
428            
429            _rs = ps.executeQuery();
430            if(_rs.next()) {
431                _pk = getPKFromResultSet(_rs);
432            }
433            _rs.close();
434        } catch (SQLException se) {
435            throw new PersistenceDatabaseException(se);
436        } finally {
437            if(_rs != null) {
438                try {
439                    _rs.close();
440                } catch (SQLException se) {
441                    // do nothing
442                }
443            }
444        }
445        
446        return _pk;
447    }
448    
449    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params)
450            throws PersistenceDatabaseException {
451        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
452        
453        return getEntitiesFromQuery(session, entityPermission, ps, params);
454    }
455    
456    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params)
457            throws PersistenceDatabaseException {
458        Session session = ThreadSession.currentSession();
459        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
460        
461        return getEntitiesFromQuery(session, entityPermission, ps, params);
462    }
463    
464    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap)
465            throws PersistenceDatabaseException {
466        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
467        
468        return getEntitiesFromQuery(session, entityPermission, ps);
469    }
470    
471    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap)
472            throws PersistenceDatabaseException {
473        Session session = ThreadSession.currentSession();
474        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
475        
476        return getEntitiesFromQuery(session, entityPermission, ps);
477    }
478    
479    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(EntityPermission entityPermission, PreparedStatement ps)
480            throws PersistenceDatabaseException {
481        return getEntitiesFromQuery(ThreadSession.currentSession(), entityPermission, ps);
482    }
483    
484    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params)
485            throws PersistenceDatabaseException {
486        return getEntitiesFromQuery(ThreadSession.currentSession(), entityPermission, ps, params);
487    }
488    
489    public java.util.List<CommunicationEmailSource> getEntitiesFromQuery(Session session, EntityPermission entityPermission, PreparedStatement ps, final Object... params)
490            throws PersistenceDatabaseException {
491        java.util.List<CommunicationEmailSource> _entities;
492        ResultSet _rs = null;
493        
494        try {
495            if(params.length != 0) {
496                Session.setQueryParams(ps, params);
497            }
498            
499            _rs = ps.executeQuery();
500            _entities = getEntitiesFromResultSet(session, entityPermission, _rs);
501            _rs.close();
502        } catch (SQLException se) {
503            throw new PersistenceDatabaseException(se);
504        } finally {
505            if(_rs != null) {
506                try {
507                    _rs.close();
508                } catch (SQLException se) {
509                    // do nothing
510                }
511            }
512        }
513        
514        return _entities;
515    }
516    
517    public CommunicationEmailSource getEntityFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params)
518            throws PersistenceDatabaseException {
519        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
520        
521        return getEntityFromQuery(session, entityPermission, ps, params);
522    }
523    
524    public CommunicationEmailSource getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap, final Object... params)
525            throws PersistenceDatabaseException {
526        Session session = ThreadSession.currentSession();
527        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
528        
529        return getEntityFromQuery(session, entityPermission, ps, params);
530    }
531    
532    public CommunicationEmailSource getEntityFromQuery(Session session, EntityPermission entityPermission, Map<EntityPermission, String>queryMap)
533            throws PersistenceDatabaseException {
534        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
535        
536        return getEntityFromQuery(session, entityPermission, ps);
537    }
538    
539    public CommunicationEmailSource getEntityFromQuery(EntityPermission entityPermission, Map<EntityPermission, String>queryMap)
540            throws PersistenceDatabaseException {
541        Session session = ThreadSession.currentSession();
542        PreparedStatement ps = session.prepareStatement(CommunicationEmailSourceFactory.class, queryMap.get(entityPermission));
543        
544        return getEntityFromQuery(session, entityPermission, ps);
545    }
546    
547    public CommunicationEmailSource getEntityFromQuery(EntityPermission entityPermission, PreparedStatement ps)
548            throws PersistenceDatabaseException {
549        return getEntityFromQuery(ThreadSession.currentSession(), entityPermission, ps);
550    }
551    
552    public CommunicationEmailSource getEntityFromQuery(EntityPermission entityPermission, PreparedStatement ps, final Object... params)
553            throws PersistenceDatabaseException {
554        return getEntityFromQuery(ThreadSession.currentSession(), entityPermission, ps, params);
555    }
556    
557    public CommunicationEmailSource getEntityFromQuery(Session session, EntityPermission entityPermission, PreparedStatement ps, final Object... params)
558            throws PersistenceDatabaseException {
559        CommunicationEmailSource _entity = null;
560        ResultSet _rs = null;
561        
562        try {
563            if(params.length != 0) {
564                Session.setQueryParams(ps, params);
565            }
566            
567            _rs = ps.executeQuery();
568            if(_rs.next()) {
569                _entity = getEntityFromResultSet(session, entityPermission, _rs);
570            }
571            _rs.close();
572        } catch (SQLException se) {
573            throw new PersistenceDatabaseException(se);
574        } finally {
575            if(_rs != null) {
576                try {
577                    _rs.close();
578                } catch (SQLException se) {
579                    // do nothing
580                }
581            }
582        }
583        
584        return _entity;
585    }
586    
587    public java.util.List<CommunicationEmailSource> getEntitiesFromResultSet(EntityPermission entityPermission, ResultSet rs)
588            throws PersistenceDatabaseException {
589        return getEntitiesFromResultSet(ThreadSession.currentSession(), entityPermission, rs);
590    }
591    
592    public java.util.List<CommunicationEmailSource> getEntitiesFromResultSet(Session session, EntityPermission entityPermission, ResultSet rs)
593            throws PersistenceDatabaseException {
594        java.util.List<CommunicationEmailSource> _result = new ArrayList<>();
595        
596        try {
597            while(rs.next()) {
598                _result.add(getEntityFromResultSet(session, entityPermission, rs));
599            }
600        } catch (SQLException se) {
601            throw new PersistenceDatabaseException(se);
602        }
603        
604        return _result;
605    }
606    
607    public CommunicationEmailSource getEntityFromResultSet(EntityPermission entityPermission, ResultSet rs)
608            throws PersistenceDatabaseException {
609        return getEntityFromResultSet(ThreadSession.currentSession(), entityPermission, rs);
610    }
611    
612    public CommunicationEmailSource getEntityFromResultSet(Session session, EntityPermission entityPermission, ResultSet rs)
613            throws PersistenceDatabaseException {
614        CommunicationEmailSource _entity;
615        
616        try {
617            Long cmmnesrc_communicationemailsourceid = rs.getLong(CMMNESRC_COMMUNICATIONEMAILSOURCEID);
618            CommunicationEmailSourcePK _pk = new CommunicationEmailSourcePK(cmmnesrc_communicationemailsourceid);
619            
620            // See if we already have the entity in the session cache
621            _entity = (CommunicationEmailSource)session.getEntity(_pk);
622            if(_entity != null) {
623                // If the requested permission is READ_WRITE, and the cached permission is
624                // READ_ONLY, then pretend that the cached object wasn't found, and create
625                // a new entity that is READ_WRITE.
626                if(entityPermission.equals(EntityPermission.READ_WRITE)) {
627                    if(_entity.getEntityPermission().equals(EntityPermission.READ_ONLY))
628                        _entity = null;
629                }
630            }
631            boolean foundInSessionCache = _entity != null;
632            
633            if(_entity == null && entityPermission.equals(EntityPermission.READ_ONLY)) {
634                _entity = getEntityFromCache(session, _pk);
635            }
636            
637            if(_entity == null) {
638                Long cmmnesrc_cmmnsrc_communicationsourceid = rs.getLong(CMMNESRC_CMMNSRC_COMMUNICATIONSOURCEID);
639                if(rs.wasNull())
640                    cmmnesrc_cmmnsrc_communicationsourceid = null;
641                
642                Long cmmnesrc_serv_serverid = rs.getLong(CMMNESRC_SERV_SERVERID);
643                if(rs.wasNull())
644                    cmmnesrc_serv_serverid = null;
645                
646                String cmmnesrc_username = rs.getString(CMMNESRC_USERNAME);
647                if(rs.wasNull())
648                    cmmnesrc_username = null;
649                
650                String cmmnesrc_password = rs.getString(CMMNESRC_PASSWORD);
651                if(rs.wasNull())
652                    cmmnesrc_password = null;
653                
654                Long cmmnesrc_receiveworkeffortscopeid = rs.getLong(CMMNESRC_RECEIVEWORKEFFORTSCOPEID);
655                if(rs.wasNull())
656                    cmmnesrc_receiveworkeffortscopeid = null;
657                
658                Long cmmnesrc_sendworkeffortscopeid = rs.getLong(CMMNESRC_SENDWORKEFFORTSCOPEID);
659                if(rs.wasNull())
660                    cmmnesrc_sendworkeffortscopeid = null;
661                
662                Long cmmnesrc_reviewemployeeselectorid = rs.getLong(CMMNESRC_REVIEWEMPLOYEESELECTORID);
663                if(rs.wasNull())
664                    cmmnesrc_reviewemployeeselectorid = null;
665                
666                Long cmmnesrc_fromtime = rs.getLong(CMMNESRC_FROMTIME);
667                if(rs.wasNull())
668                    cmmnesrc_fromtime = null;
669                
670                Long cmmnesrc_thrutime = rs.getLong(CMMNESRC_THRUTIME);
671                if(rs.wasNull())
672                    cmmnesrc_thrutime = null;
673                
674                CommunicationEmailSourceValue _value = new CommunicationEmailSourceValue(_pk, cmmnesrc_cmmnsrc_communicationsourceid == null? null: new CommunicationSourcePK(cmmnesrc_cmmnsrc_communicationsourceid), cmmnesrc_serv_serverid == null? null: new ServerPK(cmmnesrc_serv_serverid), cmmnesrc_username, cmmnesrc_password, cmmnesrc_receiveworkeffortscopeid == null? null: new WorkEffortScopePK(cmmnesrc_receiveworkeffortscopeid), cmmnesrc_sendworkeffortscopeid == null? null: new WorkEffortScopePK(cmmnesrc_sendworkeffortscopeid), cmmnesrc_reviewemployeeselectorid == null? null: new SelectorPK(cmmnesrc_reviewemployeeselectorid), cmmnesrc_fromtime, cmmnesrc_thrutime);
675                _entity = new CommunicationEmailSource(_value, entityPermission);
676            }
677            
678            if(!foundInSessionCache) {
679                if(entityPermission.equals(EntityPermission.READ_ONLY)) {
680                    session.putReadOnlyEntity(_pk, _entity);
681                    session.getValueCache().put(_entity.getCommunicationEmailSourceValue());
682                } else {
683                    session.putReadWriteEntity(_pk, _entity);
684                }
685            }
686        } catch (SQLException se) {
687            throw new PersistenceDatabaseException(se);
688        }
689        
690        return _entity;
691    }
692    
693    public CommunicationEmailSource create(Session session, CommunicationSource communicationSource, Server server, String username, String password, WorkEffortScope receiveWorkEffortScope, WorkEffortScope sendWorkEffortScope, Selector reviewEmployeeSelector, Long fromTime, Long thruTime)
694            throws PersistenceDatabaseException, PersistenceNotNullException {
695        return create(session, communicationSource == null ? null : communicationSource.getPrimaryKey(), server == null ? null : server.getPrimaryKey(), username, password, receiveWorkEffortScope == null ? null : receiveWorkEffortScope.getPrimaryKey(), sendWorkEffortScope == null ? null : sendWorkEffortScope.getPrimaryKey(), reviewEmployeeSelector == null ? null : reviewEmployeeSelector.getPrimaryKey(), fromTime, thruTime);
696    }
697    
698    public CommunicationEmailSource create(CommunicationSource communicationSource, Server server, String username, String password, WorkEffortScope receiveWorkEffortScope, WorkEffortScope sendWorkEffortScope, Selector reviewEmployeeSelector, Long fromTime, Long thruTime)
699            throws PersistenceDatabaseException, PersistenceNotNullException {
700        return create(ThreadSession.currentSession(), communicationSource == null ? null : communicationSource.getPrimaryKey(), server == null ? null : server.getPrimaryKey(), username, password, receiveWorkEffortScope == null ? null : receiveWorkEffortScope.getPrimaryKey(), sendWorkEffortScope == null ? null : sendWorkEffortScope.getPrimaryKey(), reviewEmployeeSelector == null ? null : reviewEmployeeSelector.getPrimaryKey(), fromTime, thruTime);
701    }
702    
703    private void bindForCreate(PreparedStatement _ps, CommunicationEmailSourceValue _value)
704            throws SQLException {
705        _ps.setLong(1, _value.getEntityId());
706        
707        CommunicationSourcePK cmmnesrc_cmmnsrc_communicationsourceid = _value.getCommunicationSourcePK();
708        if(cmmnesrc_cmmnsrc_communicationsourceid == null)
709            _ps.setNull(2, Types.BIGINT);
710        else
711            _ps.setLong(2, cmmnesrc_cmmnsrc_communicationsourceid.getEntityId());
712            
713        ServerPK cmmnesrc_serv_serverid = _value.getServerPK();
714        if(cmmnesrc_serv_serverid == null)
715            _ps.setNull(3, Types.BIGINT);
716        else
717            _ps.setLong(3, cmmnesrc_serv_serverid.getEntityId());
718            
719        String cmmnesrc_username = _value.getUsername();
720        if(cmmnesrc_username == null)
721            _ps.setNull(4, Types.VARCHAR);
722        else
723            _ps.setString(4, cmmnesrc_username);
724            
725        String cmmnesrc_password = _value.getPassword();
726        if(cmmnesrc_password == null)
727            _ps.setNull(5, Types.VARCHAR);
728        else
729            _ps.setString(5, cmmnesrc_password);
730            
731        WorkEffortScopePK cmmnesrc_receiveworkeffortscopeid = _value.getReceiveWorkEffortScopePK();
732        if(cmmnesrc_receiveworkeffortscopeid == null)
733            _ps.setNull(6, Types.BIGINT);
734        else
735            _ps.setLong(6, cmmnesrc_receiveworkeffortscopeid.getEntityId());
736            
737        WorkEffortScopePK cmmnesrc_sendworkeffortscopeid = _value.getSendWorkEffortScopePK();
738        if(cmmnesrc_sendworkeffortscopeid == null)
739            _ps.setNull(7, Types.BIGINT);
740        else
741            _ps.setLong(7, cmmnesrc_sendworkeffortscopeid.getEntityId());
742            
743        SelectorPK cmmnesrc_reviewemployeeselectorid = _value.getReviewEmployeeSelectorPK();
744        if(cmmnesrc_reviewemployeeselectorid == null)
745            _ps.setNull(8, Types.BIGINT);
746        else
747            _ps.setLong(8, cmmnesrc_reviewemployeeselectorid.getEntityId());
748            
749        Long cmmnesrc_fromtime = _value.getFromTime();
750        if(cmmnesrc_fromtime == null)
751            _ps.setNull(9, Types.BIGINT);
752        else
753            _ps.setLong(9, cmmnesrc_fromtime);
754            
755        Long cmmnesrc_thrutime = _value.getThruTime();
756        if(cmmnesrc_thrutime == null)
757            _ps.setNull(10, Types.BIGINT);
758        else
759            _ps.setLong(10, cmmnesrc_thrutime);
760            
761    }
762    
763    public CommunicationEmailSource create(Session session, CommunicationSourcePK communicationSourcePK, ServerPK serverPK, String username, String password, WorkEffortScopePK receiveWorkEffortScopePK, WorkEffortScopePK sendWorkEffortScopePK, SelectorPK reviewEmployeeSelectorPK, Long fromTime, Long thruTime)
764            throws PersistenceDatabaseException, PersistenceNotNullException {
765        CommunicationEmailSourcePK _pk = getNextPK();
766        CommunicationEmailSourceValue _value = new CommunicationEmailSourceValue(_pk, communicationSourcePK, serverPK, username, password, receiveWorkEffortScopePK, sendWorkEffortScopePK, reviewEmployeeSelectorPK, fromTime, thruTime);
767        
768        PreparedStatement _ps = session.prepareStatement(SQL_INSERT);
769        
770        try {
771            bindForCreate(_ps, _value);
772            
773            if(PersistenceDebugFlags.CheckEntityInsertRowCount) {
774                int _count = _ps.executeUpdate();
775                
776                if(_count != 1) {
777                    throw new PersistenceDatabaseUpdateException("insert failed, _count = " + _count);
778                }
779            } else {
780                 _ps.executeUpdate();
781            }
782            
783            session.getValueCache().put(_value);
784        } catch (SQLException se) {
785            throw new PersistenceDatabaseException(se);
786        }
787        
788        CommunicationEmailSource _entity = new CommunicationEmailSource(_value, EntityPermission.READ_ONLY);
789        session.putReadOnlyEntity(_pk, _entity);
790        
791        return _entity;
792    }
793    
794    public CommunicationEmailSource create(CommunicationSourcePK communicationSourcePK, ServerPK serverPK, String username, String password, WorkEffortScopePK receiveWorkEffortScopePK, WorkEffortScopePK sendWorkEffortScopePK, SelectorPK reviewEmployeeSelectorPK, Long fromTime, Long thruTime)
795            throws PersistenceDatabaseException, PersistenceNotNullException {
796        return create(ThreadSession.currentSession(), communicationSourcePK, serverPK, username, password, receiveWorkEffortScopePK, sendWorkEffortScopePK, reviewEmployeeSelectorPK, fromTime, thruTime);
797    }
798    
799    public void create(Session session, Collection<CommunicationEmailSourceValue> _values)
800            throws PersistenceDatabaseException, PersistenceNotNullException {
801        int _size = _values.size();
802        
803        if(_size > 0) {
804            PreparedStatement _ps = session.prepareStatement(SQL_INSERT);
805            List<CommunicationEmailSourceValue> _cacheValues = new ArrayList<>(_size);
806            
807            try {
808                for(CommunicationEmailSourceValue _value : _values) {
809                    _value.setEntityId(entityIdGenerator.getNextEntityId());
810                    bindForCreate(_ps, _value);
811                    
812                    _ps.addBatch();
813                    
814                    _cacheValues.add(_value);
815                }
816                
817                if(PersistenceDebugFlags.CheckEntityInsertRowCount) {
818                    int[] _counts = _ps.executeBatch();
819                    
820                    for(int _countOffset = 0 ; _countOffset < _size ; _countOffset++) {
821                        if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) {
822                            throw new PersistenceDatabaseUpdateException("batch insert failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]);
823                        }
824                    }
825                } else {
826                     _ps.executeBatch();
827                }
828                
829                _ps.clearBatch();
830            } catch (SQLException se) {
831                throw new PersistenceDatabaseException(se);
832            }
833            
834            _cacheValues.forEach((_cacheValue) -> {
835                CommunicationEmailSource _cacheEntity = new CommunicationEmailSource(_cacheValue, EntityPermission.READ_ONLY);
836                
837                session.putReadOnlyEntity(_cacheValue.getPrimaryKey(), _cacheEntity);
838            });
839        }
840    }
841    
842    public void create(Collection<CommunicationEmailSourceValue> _values)
843            throws PersistenceDatabaseException, PersistenceNotNullException {
844        create(ThreadSession.currentSession(), _values);
845    }
846    
847    private boolean bindForStore(PreparedStatement _ps, CommunicationEmailSourceValue _value)
848            throws SQLException {
849        boolean _hasBeenModified = _value.hasBeenModified();
850        
851        if(_hasBeenModified) {
852            CommunicationSourcePK cmmnesrc_cmmnsrc_communicationsourceid = _value.getCommunicationSourcePK();
853            if(cmmnesrc_cmmnsrc_communicationsourceid == null)
854                _ps.setNull(1, Types.BIGINT);
855            else
856                _ps.setLong(1, cmmnesrc_cmmnsrc_communicationsourceid.getEntityId());
857            
858            ServerPK cmmnesrc_serv_serverid = _value.getServerPK();
859            if(cmmnesrc_serv_serverid == null)
860                _ps.setNull(2, Types.BIGINT);
861            else
862                _ps.setLong(2, cmmnesrc_serv_serverid.getEntityId());
863            
864            String cmmnesrc_username = _value.getUsername();
865            if(cmmnesrc_username == null)
866                _ps.setNull(3, Types.VARCHAR);
867            else
868                _ps.setString(3, cmmnesrc_username);
869            
870            String cmmnesrc_password = _value.getPassword();
871            if(cmmnesrc_password == null)
872                _ps.setNull(4, Types.VARCHAR);
873            else
874                _ps.setString(4, cmmnesrc_password);
875            
876            WorkEffortScopePK cmmnesrc_receiveworkeffortscopeid = _value.getReceiveWorkEffortScopePK();
877            if(cmmnesrc_receiveworkeffortscopeid == null)
878                _ps.setNull(5, Types.BIGINT);
879            else
880                _ps.setLong(5, cmmnesrc_receiveworkeffortscopeid.getEntityId());
881            
882            WorkEffortScopePK cmmnesrc_sendworkeffortscopeid = _value.getSendWorkEffortScopePK();
883            if(cmmnesrc_sendworkeffortscopeid == null)
884                _ps.setNull(6, Types.BIGINT);
885            else
886                _ps.setLong(6, cmmnesrc_sendworkeffortscopeid.getEntityId());
887            
888            SelectorPK cmmnesrc_reviewemployeeselectorid = _value.getReviewEmployeeSelectorPK();
889            if(cmmnesrc_reviewemployeeselectorid == null)
890                _ps.setNull(7, Types.BIGINT);
891            else
892                _ps.setLong(7, cmmnesrc_reviewemployeeselectorid.getEntityId());
893            
894            Long cmmnesrc_fromtime = _value.getFromTime();
895            if(cmmnesrc_fromtime == null)
896                _ps.setNull(8, Types.BIGINT);
897            else
898                _ps.setLong(8, cmmnesrc_fromtime);
899            
900            Long cmmnesrc_thrutime = _value.getThruTime();
901            if(cmmnesrc_thrutime == null)
902                _ps.setNull(9, Types.BIGINT);
903            else
904                _ps.setLong(9, cmmnesrc_thrutime);
905            
906            _ps.setLong(10, _value.getPrimaryKey().getEntityId());
907            
908            _value.clearHasBeenModified();
909        }
910        
911        return _hasBeenModified;
912    }
913    
914    @Override
915    public void store(Session session, CommunicationEmailSource entity)
916            throws PersistenceDatabaseException {
917        PreparedStatement _ps = session.prepareStatement(SQL_UPDATE);
918        
919        try {
920            CommunicationEmailSourceValue _value = entity.getCommunicationEmailSourceValue();
921            
922            if(bindForStore(_ps, _value)) {
923                if(PersistenceDebugFlags.CheckEntityUpdateRowCount) {
924                    int _count = _ps.executeUpdate();
925                    
926                    if(_count != 1) {
927                        throw new PersistenceDatabaseUpdateException("update failed, _count = " + _count);
928                    }
929                } else {
930                     _ps.executeUpdate();
931                }
932                
933                session.getValueCache().put(_value);
934            }
935        } catch (SQLException se) {
936            throw new PersistenceDatabaseException(se);
937        }
938    }
939    
940    @Override
941    public void store(Session session, Collection<CommunicationEmailSource> entities)
942            throws PersistenceDatabaseException {
943        if(entities.size() > 0) {
944            PreparedStatement _ps = session.prepareStatement(SQL_UPDATE);
945            int _modifiedEntities = 0;
946            
947            try {
948                for(CommunicationEmailSource entity : entities) {
949                    if(bindForStore(_ps, entity.getCommunicationEmailSourceValue())) {
950                        _ps.addBatch();
951                        _modifiedEntities++;
952                    }
953                }
954                
955                if(_modifiedEntities != 0) {
956                    if(PersistenceDebugFlags.CheckEntityUpdateRowCount) {
957                        int[] _counts = _ps.executeBatch();
958                        
959                        for(int _countOffset = 0 ; _countOffset < _modifiedEntities  ; _countOffset++) {
960                            if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) {
961                                throw new PersistenceDatabaseUpdateException("batch update failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]);
962                            }
963                        }
964                    } else {
965                         _ps.executeBatch();
966                    }
967                    
968                    _ps.clearBatch();
969                    
970                    entities.forEach((entity) -> {
971                        session.getValueCache().put(entity.getCommunicationEmailSourceValue());
972                    });
973                }
974            } catch (SQLException se) {
975                throw new PersistenceDatabaseException(se);
976            }
977        }
978    }
979    
980    @Override
981    public void store(Collection<CommunicationEmailSource> entities)
982            throws PersistenceDatabaseException {
983        store(ThreadSession.currentSession(), entities);
984    }
985    
986    @Override
987    public void remove(Session session, CommunicationEmailSource entity)
988            throws PersistenceDatabaseException {
989        remove(session, entity.getPrimaryKey());
990    }
991    
992    @Override
993    public void remove(Session session, CommunicationEmailSourcePK pk)
994            throws PersistenceDatabaseException {
995        PreparedStatement _ps = session.prepareStatement(SQL_DELETE);
996        long _entityId = pk.getEntityId();
997        
998        try {
999            _ps.setLong(1, _entityId);
1000            
1001            if(PersistenceDebugFlags.CheckEntityDeleteRowCount) {
1002                int _count = _ps.executeUpdate();
1003                
1004                if(_count != 1) {
1005                    throw new PersistenceDatabaseUpdateException("remove failed, _count = " + _count);
1006                }
1007            } else {
1008                 _ps.executeUpdate();
1009            }
1010            
1011            session.getValueCache().remove(pk);
1012        } catch (SQLException se) {
1013            throw new PersistenceDatabaseException(se);
1014        }
1015        
1016        session.removed(pk, false);
1017    }
1018    
1019    @Override
1020    public void remove(Session session, Collection<CommunicationEmailSourcePK> pks)
1021            throws PersistenceDatabaseException {
1022        if(pks.size() > 0) {
1023            PreparedStatement _ps = session.prepareStatement(SQL_DELETE);
1024            int _modifiedEntities = 0;
1025            
1026            try {
1027                for(CommunicationEmailSourcePK pk : pks) {
1028                    long _entityId = pk.getEntityId();
1029                    
1030                    _ps.setLong(1, _entityId);
1031                    
1032                    _ps.addBatch();
1033                    _modifiedEntities++;
1034                }
1035                
1036                if(_modifiedEntities != 0) {
1037                    if(PersistenceDebugFlags.CheckEntityDeleteRowCount) {
1038                        int[] _counts = _ps.executeBatch();
1039                        
1040                        for(int _countOffset = 0 ; _countOffset < _modifiedEntities  ; _countOffset++) {
1041                            if(_counts[_countOffset] != 1 && _counts[_countOffset] != PreparedStatement.SUCCESS_NO_INFO) {
1042                                throw new PersistenceDatabaseUpdateException("batch remove failed, _counts[" + _countOffset + "] = " + _counts[_countOffset]);
1043                            }
1044                        }
1045                    } else {
1046                        _ps.executeBatch();
1047                    }
1048                    
1049                    _ps.clearBatch();
1050                    
1051                    pks.forEach((pk) -> {
1052                        session.getValueCache().remove(pk);
1053                    });
1054                }
1055            } catch (SQLException se) {
1056                throw new PersistenceDatabaseException(se);
1057            }
1058            
1059            pks.forEach((pk) -> {
1060                session.removed(pk, true);
1061            });
1062        }
1063    }
1064    
1065    @Override
1066    public void remove(Collection<CommunicationEmailSourcePK> pks)
1067            throws PersistenceDatabaseException {
1068        remove(ThreadSession.currentSession(), pks);
1069    }
1070    
1071    @Override
1072    public boolean validPK(Session session, CommunicationEmailSourcePK pk)
1073            throws PersistenceDatabaseException {
1074        boolean valid = false;
1075        PreparedStatement _ps = session.prepareStatement(SQL_VALID);
1076        ResultSet _rs = null;
1077        
1078        try {
1079            _ps.setLong(1, pk.getEntityId());
1080            
1081            _rs = _ps.executeQuery();
1082            if(_rs.next()) {
1083                long _count = _rs.getLong(1);
1084                if(_rs.wasNull())
1085                    _count = 0;
1086                
1087                if(_count == 1)
1088                    valid = true;
1089            }
1090        } catch (SQLException se) {
1091            throw new PersistenceDatabaseException(se);
1092        } finally {
1093            if(_rs != null) {
1094                try {
1095                    _rs.close();
1096                } catch (SQLException se) {
1097                    // do nothing
1098                }
1099            }
1100        }
1101        
1102        return valid;
1103    }
1104    
1105}