001    package org.apache.turbine.services.security.torque.om;
002    
003    
004    import java.math.BigDecimal;
005    import java.sql.Connection;
006    import java.util.ArrayList;
007    import java.util.Collections;
008    import java.util.Date;
009    import java.util.List;
010    
011    import org.apache.commons.lang.ObjectUtils;
012    import org.apache.torque.TorqueException;
013    import org.apache.torque.map.TableMap;
014    import org.apache.torque.om.BaseObject;
015    import org.apache.torque.om.ComboKey;
016    import org.apache.torque.om.DateKey;
017    import org.apache.torque.om.NumberKey;
018    import org.apache.torque.om.ObjectKey;
019    import org.apache.torque.om.SimpleKey;
020    import org.apache.torque.om.StringKey;
021    import org.apache.torque.om.Persistent;
022    import org.apache.torque.util.Criteria;
023    import org.apache.torque.util.Transaction;
024    
025    
026    
027    
028    
029    /**
030     * This class was autogenerated by Torque on:
031     *
032     * [Thu Jun 23 17:25:46 CEST 2011]
033     *
034     * You should not use this class directly.  It should not even be
035     * extended all references should be to TurbineUserGroupRole
036     */
037    public abstract class BaseTurbineUserGroupRole extends BaseObject
038    {
039        /** Serial version */
040        private static final long serialVersionUID = 1308842746584L;
041    
042        /** The Peer class */
043        private static final TurbineUserGroupRolePeer peer =
044            new TurbineUserGroupRolePeer();
045    
046    
047        /** The value for the userId field */
048        private int userId;
049    
050        /** The value for the groupId field */
051        private int groupId;
052    
053        /** The value for the roleId field */
054        private int roleId;
055    
056    
057        /**
058         * Get the UserId
059         *
060         * @return int
061         */
062        public int getUserId()
063        {
064            return userId;
065        }
066    
067    
068        /**
069         * Set the value of UserId
070         *
071         * @param v new value
072         */
073        public void setUserId(int v) throws TorqueException
074        {
075    
076            if (this.userId != v)
077            {
078                this.userId = v;
079                setModified(true);
080            }
081    
082    
083            if (aTurbineUser != null && !(aTurbineUser.getUserId() == v))
084            {
085                aTurbineUser = null;
086            }
087    
088        }
089    
090        /**
091         * Get the GroupId
092         *
093         * @return int
094         */
095        public int getGroupId()
096        {
097            return groupId;
098        }
099    
100    
101        /**
102         * Set the value of GroupId
103         *
104         * @param v new value
105         */
106        public void setGroupId(int v) throws TorqueException
107        {
108    
109            if (this.groupId != v)
110            {
111                this.groupId = v;
112                setModified(true);
113            }
114    
115    
116            if (aTurbineGroup != null && !(aTurbineGroup.getGroupId() == v))
117            {
118                aTurbineGroup = null;
119            }
120    
121        }
122    
123        /**
124         * Get the RoleId
125         *
126         * @return int
127         */
128        public int getRoleId()
129        {
130            return roleId;
131        }
132    
133    
134        /**
135         * Set the value of RoleId
136         *
137         * @param v new value
138         */
139        public void setRoleId(int v) throws TorqueException
140        {
141    
142            if (this.roleId != v)
143            {
144                this.roleId = v;
145                setModified(true);
146            }
147    
148    
149            if (aTurbineRole != null && !(aTurbineRole.getRoleId() == v))
150            {
151                aTurbineRole = null;
152            }
153    
154        }
155    
156        
157    
158    
159    
160        private TurbineUser aTurbineUser;
161    
162        /**
163         * Declares an association between this object and a TurbineUser object
164         *
165         * @param v TurbineUser
166         * @throws TorqueException
167         */
168        public void setTurbineUser(TurbineUser v) throws TorqueException
169        {
170            if (v == null)
171            {
172                setUserId( 0);
173            }
174            else
175            {
176                setUserId(v.getUserId());
177            }
178            aTurbineUser = v;
179        }
180    
181    
182        /**
183         * Returns the associated TurbineUser object.
184         * If it was not retrieved before, the object is retrieved from
185         * the database
186         *
187         * @return the associated TurbineUser object
188         * @throws TorqueException
189         */
190        public TurbineUser getTurbineUser()
191            throws TorqueException
192        {
193            if (aTurbineUser == null && (this.userId != 0))
194            {
195                aTurbineUser = TurbineUserPeer.retrieveByPK(SimpleKey.keyFor(this.userId));
196            }
197            return aTurbineUser;
198        }
199    
200        /**
201         * Return the associated TurbineUser object
202         * If it was not retrieved before, the object is retrieved from
203         * the database using the passed connection
204         *
205         * @param connection the connection used to retrieve the associated object
206         *        from the database, if it was not retrieved before
207         * @return the associated TurbineUser object
208         * @throws TorqueException
209         */
210        public TurbineUser getTurbineUser(Connection connection)
211            throws TorqueException
212        {
213            if (aTurbineUser == null && (this.userId != 0))
214            {
215                aTurbineUser = TurbineUserPeer.retrieveByPK(SimpleKey.keyFor(this.userId), connection);
216            }
217            return aTurbineUser;
218        }
219    
220        /**
221         * Provides convenient way to set a relationship based on a
222         * ObjectKey, for example
223         * <code>bar.setFooKey(foo.getPrimaryKey())</code>
224         *
225         */
226        public void setTurbineUserKey(ObjectKey key) throws TorqueException
227        {
228    
229            setUserId(((NumberKey) key).intValue());
230        }
231    
232    
233    
234    
235        private TurbineGroup aTurbineGroup;
236    
237        /**
238         * Declares an association between this object and a TurbineGroup object
239         *
240         * @param v TurbineGroup
241         * @throws TorqueException
242         */
243        public void setTurbineGroup(TurbineGroup v) throws TorqueException
244        {
245            if (v == null)
246            {
247                setGroupId( 0);
248            }
249            else
250            {
251                setGroupId(v.getGroupId());
252            }
253            aTurbineGroup = v;
254        }
255    
256    
257        /**
258         * Returns the associated TurbineGroup object.
259         * If it was not retrieved before, the object is retrieved from
260         * the database
261         *
262         * @return the associated TurbineGroup object
263         * @throws TorqueException
264         */
265        public TurbineGroup getTurbineGroup()
266            throws TorqueException
267        {
268            if (aTurbineGroup == null && (this.groupId != 0))
269            {
270                aTurbineGroup = TurbineGroupPeer.retrieveByPK(SimpleKey.keyFor(this.groupId));
271            }
272            return aTurbineGroup;
273        }
274    
275        /**
276         * Return the associated TurbineGroup object
277         * If it was not retrieved before, the object is retrieved from
278         * the database using the passed connection
279         *
280         * @param connection the connection used to retrieve the associated object
281         *        from the database, if it was not retrieved before
282         * @return the associated TurbineGroup object
283         * @throws TorqueException
284         */
285        public TurbineGroup getTurbineGroup(Connection connection)
286            throws TorqueException
287        {
288            if (aTurbineGroup == null && (this.groupId != 0))
289            {
290                aTurbineGroup = TurbineGroupPeer.retrieveByPK(SimpleKey.keyFor(this.groupId), connection);
291            }
292            return aTurbineGroup;
293        }
294    
295        /**
296         * Provides convenient way to set a relationship based on a
297         * ObjectKey, for example
298         * <code>bar.setFooKey(foo.getPrimaryKey())</code>
299         *
300         */
301        public void setTurbineGroupKey(ObjectKey key) throws TorqueException
302        {
303    
304            setGroupId(((NumberKey) key).intValue());
305        }
306    
307    
308    
309    
310        private TurbineRole aTurbineRole;
311    
312        /**
313         * Declares an association between this object and a TurbineRole object
314         *
315         * @param v TurbineRole
316         * @throws TorqueException
317         */
318        public void setTurbineRole(TurbineRole v) throws TorqueException
319        {
320            if (v == null)
321            {
322                setRoleId( 0);
323            }
324            else
325            {
326                setRoleId(v.getRoleId());
327            }
328            aTurbineRole = v;
329        }
330    
331    
332        /**
333         * Returns the associated TurbineRole object.
334         * If it was not retrieved before, the object is retrieved from
335         * the database
336         *
337         * @return the associated TurbineRole object
338         * @throws TorqueException
339         */
340        public TurbineRole getTurbineRole()
341            throws TorqueException
342        {
343            if (aTurbineRole == null && (this.roleId != 0))
344            {
345                aTurbineRole = TurbineRolePeer.retrieveByPK(SimpleKey.keyFor(this.roleId));
346            }
347            return aTurbineRole;
348        }
349    
350        /**
351         * Return the associated TurbineRole object
352         * If it was not retrieved before, the object is retrieved from
353         * the database using the passed connection
354         *
355         * @param connection the connection used to retrieve the associated object
356         *        from the database, if it was not retrieved before
357         * @return the associated TurbineRole object
358         * @throws TorqueException
359         */
360        public TurbineRole getTurbineRole(Connection connection)
361            throws TorqueException
362        {
363            if (aTurbineRole == null && (this.roleId != 0))
364            {
365                aTurbineRole = TurbineRolePeer.retrieveByPK(SimpleKey.keyFor(this.roleId), connection);
366            }
367            return aTurbineRole;
368        }
369    
370        /**
371         * Provides convenient way to set a relationship based on a
372         * ObjectKey, for example
373         * <code>bar.setFooKey(foo.getPrimaryKey())</code>
374         *
375         */
376        public void setTurbineRoleKey(ObjectKey key) throws TorqueException
377        {
378    
379            setRoleId(((NumberKey) key).intValue());
380        }
381       
382            
383        private static List<String> fieldNames = null;
384    
385        /**
386         * Generate a list of field names.
387         *
388         * @return a list of field names
389         */
390        public static synchronized List<String> getFieldNames()
391        {
392            if (fieldNames == null)
393            {
394                fieldNames = new ArrayList<String>();
395                fieldNames.add("UserId");
396                fieldNames.add("GroupId");
397                fieldNames.add("RoleId");
398                fieldNames = Collections.unmodifiableList(fieldNames);
399            }
400            return fieldNames;
401        }
402    
403        /**
404         * Retrieves a field from the object by field (Java) name passed in as a String.
405         *
406         * @param name field name
407         * @return value
408         */
409        public Object getByName(String name)
410        {
411            if (name.equals("UserId"))
412            {
413                return new Integer(getUserId());
414            }
415            if (name.equals("GroupId"))
416            {
417                return new Integer(getGroupId());
418            }
419            if (name.equals("RoleId"))
420            {
421                return new Integer(getRoleId());
422            }
423            return null;
424        }
425    
426        /**
427         * Set a field in the object by field (Java) name.
428         *
429         * @param name field name
430         * @param value field value
431         * @return True if value was set, false if not (invalid name / protected field).
432         * @throws IllegalArgumentException if object type of value does not match field object type.
433         * @throws TorqueException If a problem occurs with the set[Field] method.
434         */
435        public boolean setByName(String name, Object value )
436            throws TorqueException, IllegalArgumentException
437        {
438            if (name.equals("UserId"))
439            {
440                if (value == null || ! (Integer.class.isInstance(value)))
441                {
442                    throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object.");
443                }
444                setUserId(((Integer) value).intValue());
445                return true;
446            }
447            if (name.equals("GroupId"))
448            {
449                if (value == null || ! (Integer.class.isInstance(value)))
450                {
451                    throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object.");
452                }
453                setGroupId(((Integer) value).intValue());
454                return true;
455            }
456            if (name.equals("RoleId"))
457            {
458                if (value == null || ! (Integer.class.isInstance(value)))
459                {
460                    throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object.");
461                }
462                setRoleId(((Integer) value).intValue());
463                return true;
464            }
465            return false;
466        }
467    
468        /**
469         * Retrieves a field from the object by name passed in
470         * as a String.  The String must be one of the static
471         * Strings defined in this Class' Peer.
472         *
473         * @param name peer name
474         * @return value
475         */
476        public Object getByPeerName(String name)
477        {
478            if (name.equals(TurbineUserGroupRolePeer.USER_ID))
479            {
480                return new Integer(getUserId());
481            }
482            if (name.equals(TurbineUserGroupRolePeer.GROUP_ID))
483            {
484                return new Integer(getGroupId());
485            }
486            if (name.equals(TurbineUserGroupRolePeer.ROLE_ID))
487            {
488                return new Integer(getRoleId());
489            }
490            return null;
491        }
492    
493        /**
494         * Set field values by Peer Field Name
495         *
496         * @param name field name
497         * @param value field value
498         * @return True if value was set, false if not (invalid name / protected field).
499         * @throws IllegalArgumentException if object type of value does not match field object type.
500         * @throws TorqueException If a problem occurs with the set[Field] method.
501         */
502        public boolean setByPeerName(String name, Object value)
503            throws TorqueException, IllegalArgumentException
504        {
505          if (TurbineUserGroupRolePeer.USER_ID.equals(name))
506            {
507                return setByName("UserId", value);
508            }
509          if (TurbineUserGroupRolePeer.GROUP_ID.equals(name))
510            {
511                return setByName("GroupId", value);
512            }
513          if (TurbineUserGroupRolePeer.ROLE_ID.equals(name))
514            {
515                return setByName("RoleId", value);
516            }
517            return false;
518        }
519    
520        /**
521         * Retrieves a field from the object by Position as specified
522         * in the xml schema.  Zero-based.
523         *
524         * @param pos position in xml schema
525         * @return value
526         */
527        public Object getByPosition(int pos)
528        {
529            if (pos == 0)
530            {
531                return new Integer(getUserId());
532            }
533            if (pos == 1)
534            {
535                return new Integer(getGroupId());
536            }
537            if (pos == 2)
538            {
539                return new Integer(getRoleId());
540            }
541            return null;
542        }
543    
544        /**
545         * Set field values by its position (zero based) in the XML schema.
546         *
547         * @param position The field position
548         * @param value field value
549         * @return True if value was set, false if not (invalid position / protected field).
550         * @throws IllegalArgumentException if object type of value does not match field object type.
551         * @throws TorqueException If a problem occurs with the set[Field] method.
552         */
553        public boolean setByPosition(int position, Object value)
554            throws TorqueException, IllegalArgumentException
555        {
556        if (position == 0)
557            {
558                return setByName("UserId", value);
559            }
560        if (position == 1)
561            {
562                return setByName("GroupId", value);
563            }
564        if (position == 2)
565            {
566                return setByName("RoleId", value);
567            }
568            return false;
569        }
570         
571        /**
572         * Stores the object in the database.  If the object is new,
573         * it inserts it; otherwise an update is performed.
574         *
575         * @throws Exception
576         */
577        public void save() throws Exception
578        {
579            save(TurbineUserGroupRolePeer.DATABASE_NAME);
580        }
581    
582        /**
583         * Stores the object in the database.  If the object is new,
584         * it inserts it; otherwise an update is performed.
585         * Note: this code is here because the method body is
586         * auto-generated conditionally and therefore needs to be
587         * in this file instead of in the super class, BaseObject.
588         *
589         * @param dbName
590         * @throws TorqueException
591         */
592        public void save(String dbName) throws TorqueException
593        {
594            Connection con = null;
595            try
596            {
597                con = Transaction.begin(dbName);
598                save(con);
599                Transaction.commit(con);
600            }
601            catch(TorqueException e)
602            {
603                Transaction.safeRollback(con);
604                throw e;
605            }
606        }
607    
608        /** flag to prevent endless save loop, if this object is referenced
609            by another object which falls in this transaction. */
610        private boolean alreadyInSave = false;
611        /**
612         * Stores the object in the database.  If the object is new,
613         * it inserts it; otherwise an update is performed.  This method
614         * is meant to be used as part of a transaction, otherwise use
615         * the save() method and the connection details will be handled
616         * internally
617         *
618         * @param con
619         * @throws TorqueException
620         */
621        public void save(Connection con) throws TorqueException
622        {
623            if (!alreadyInSave)
624            {
625                alreadyInSave = true;
626    
627    
628    
629                // If this object has been modified, then save it to the database.
630                if (isModified())
631                {
632                    if (isNew())
633                    {
634                        TurbineUserGroupRolePeer.doInsert((TurbineUserGroupRole) this, con);
635                        setNew(false);
636                    }
637                    else
638                    {
639                        TurbineUserGroupRolePeer.doUpdate((TurbineUserGroupRole) this, con);
640                    }
641                }
642    
643                alreadyInSave = false;
644            }
645        }
646    
647    
648    
649        private final SimpleKey[] pks = new SimpleKey[3];
650        private final ComboKey comboPK = new ComboKey(pks);
651    
652        /**
653         * Set the PrimaryKey with an ObjectKey
654         *
655         * @param key
656         */
657        public void setPrimaryKey(ObjectKey key) throws TorqueException
658        {
659            SimpleKey[] keys = (SimpleKey[]) key.getValue();
660            setUserId(((NumberKey)keys[0]).intValue());
661            setGroupId(((NumberKey)keys[1]).intValue());
662            setRoleId(((NumberKey)keys[2]).intValue());
663        }
664    
665        /**
666         * Set the PrimaryKey using SimpleKeys.
667         *
668         * @param userId int
669         * @param groupId int
670         * @param roleId int
671         */
672        public void setPrimaryKey( int userId, int groupId, int roleId)
673            throws TorqueException
674        {
675            setUserId(userId);
676            setGroupId(groupId);
677            setRoleId(roleId);
678        }
679    
680        /**
681         * Set the PrimaryKey using a String.
682         */
683        public void setPrimaryKey(String key) throws TorqueException
684        {
685            setPrimaryKey(new ComboKey(key));
686        }
687    
688        /**
689         * returns an id that differentiates this object from others
690         * of its class.
691         */
692        public ObjectKey getPrimaryKey()
693        {
694            pks[0] = SimpleKey.keyFor(getUserId());
695            pks[1] = SimpleKey.keyFor(getGroupId());
696            pks[2] = SimpleKey.keyFor(getRoleId());
697            return comboPK;
698        }
699     
700    
701        /**
702         * Makes a copy of this object.
703         * It creates a new object filling in the simple attributes.
704         * It then fills all the association collections and sets the
705         * related objects to isNew=true.
706         */
707        public TurbineUserGroupRole copy() throws TorqueException
708        {
709            return copy(true);
710        }
711    
712        /**
713         * Makes a copy of this object using connection.
714         * It creates a new object filling in the simple attributes.
715         * It then fills all the association collections and sets the
716         * related objects to isNew=true.
717         *
718         * @param con the database connection to read associated objects.
719         */
720        public TurbineUserGroupRole copy(Connection con) throws TorqueException
721        {
722            return copy(true, con);
723        }
724    
725        /**
726         * Makes a copy of this object.
727         * It creates a new object filling in the simple attributes.
728         * If the parameter deepcopy is true, it then fills all the
729         * association collections and sets the related objects to
730         * isNew=true.
731         *
732         * @param deepcopy whether to copy the associated objects.
733         */
734        public TurbineUserGroupRole copy(boolean deepcopy) throws TorqueException
735        {
736            return copyInto(new TurbineUserGroupRole(), deepcopy);
737        }
738    
739        /**
740         * Makes a copy of this object using connection.
741         * It creates a new object filling in the simple attributes.
742         * If the parameter deepcopy is true, it then fills all the
743         * association collections and sets the related objects to
744         * isNew=true.
745         *
746         * @param deepcopy whether to copy the associated objects.
747         * @param con the database connection to read associated objects.
748         */
749        public TurbineUserGroupRole copy(boolean deepcopy, Connection con) throws TorqueException
750        {
751            return copyInto(new TurbineUserGroupRole(), deepcopy, con);
752        }
753      
754        /**
755         * Fills the copyObj with the contents of this object.
756         * The associated objects are also copied and treated as new objects.
757         *
758         * @param copyObj the object to fill.
759         */
760        protected TurbineUserGroupRole copyInto(TurbineUserGroupRole copyObj) throws TorqueException
761        {
762            return copyInto(copyObj, true);
763        }
764    
765      
766        /**
767         * Fills the copyObj with the contents of this object using connection.
768         * The associated objects are also copied and treated as new objects.
769         *
770         * @param copyObj the object to fill.
771         * @param con the database connection to read associated objects.
772         */
773        protected TurbineUserGroupRole copyInto(TurbineUserGroupRole copyObj, Connection con) throws TorqueException
774        {
775            return copyInto(copyObj, true, con);
776        }
777      
778        /**
779         * Fills the copyObj with the contents of this object.
780         * If deepcopy is true, The associated objects are also copied
781         * and treated as new objects.
782         *
783         * @param copyObj the object to fill.
784         * @param deepcopy whether the associated objects should be copied.
785         */
786        protected TurbineUserGroupRole copyInto(TurbineUserGroupRole copyObj, boolean deepcopy) throws TorqueException
787        {
788            copyObj.setUserId(userId);
789            copyObj.setGroupId(groupId);
790            copyObj.setRoleId(roleId);
791    
792            copyObj.setUserId( 0);
793            copyObj.setGroupId( 0);
794            copyObj.setRoleId( 0);
795    
796            if (deepcopy)
797            {
798            }
799            return copyObj;
800        }
801            
802        
803        /**
804         * Fills the copyObj with the contents of this object using connection.
805         * If deepcopy is true, The associated objects are also copied
806         * and treated as new objects.
807         *
808         * @param copyObj the object to fill.
809         * @param deepcopy whether the associated objects should be copied.
810         * @param con the database connection to read associated objects.
811         */
812        protected TurbineUserGroupRole copyInto(TurbineUserGroupRole copyObj, boolean deepcopy, Connection con) throws TorqueException
813        {
814            copyObj.setUserId(userId);
815            copyObj.setGroupId(groupId);
816            copyObj.setRoleId(roleId);
817    
818            copyObj.setUserId( 0);
819            copyObj.setGroupId( 0);
820            copyObj.setRoleId( 0);
821    
822            if (deepcopy)
823            {
824            }
825            return copyObj;
826        }
827        
828        
829    
830        /**
831         * returns a peer instance associated with this om.  Since Peer classes
832         * are not to have any instance attributes, this method returns the
833         * same instance for all member of this class. The method could therefore
834         * be static, but this would prevent one from overriding the behavior.
835         */
836        public TurbineUserGroupRolePeer getPeer()
837        {
838            return peer;
839        }
840    
841        /**
842         * Retrieves the TableMap object related to this Table data without
843         * compiler warnings of using getPeer().getTableMap().
844         *
845         * @return The associated TableMap object.
846         */
847        public TableMap getTableMap() throws TorqueException
848        {
849            return TurbineUserGroupRolePeer.getTableMap();
850        }
851    
852    
853        public String toString()
854        {
855            StringBuffer str = new StringBuffer();
856            str.append("TurbineUserGroupRole:\n");
857            str.append("UserId = ")
858               .append(getUserId())
859               .append("\n");
860            str.append("GroupId = ")
861               .append(getGroupId())
862               .append("\n");
863            str.append("RoleId = ")
864               .append(getRoleId())
865               .append("\n");
866            return(str.toString());
867        }
868    }