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 TurbineRolePermission
036     */
037    public abstract class BaseTurbineRolePermission extends BaseObject
038    {
039        /** Serial version */
040        private static final long serialVersionUID = 1308842746584L;
041    
042        /** The Peer class */
043        private static final TurbineRolePermissionPeer peer =
044            new TurbineRolePermissionPeer();
045    
046    
047        /** The value for the roleId field */
048        private int roleId;
049    
050        /** The value for the permissionId field */
051        private int permissionId;
052    
053    
054        /**
055         * Get the RoleId
056         *
057         * @return int
058         */
059        public int getRoleId()
060        {
061            return roleId;
062        }
063    
064    
065        /**
066         * Set the value of RoleId
067         *
068         * @param v new value
069         */
070        public void setRoleId(int v) throws TorqueException
071        {
072    
073            if (this.roleId != v)
074            {
075                this.roleId = v;
076                setModified(true);
077            }
078    
079    
080            if (aTurbineRole != null && !(aTurbineRole.getRoleId() == v))
081            {
082                aTurbineRole = null;
083            }
084    
085        }
086    
087        /**
088         * Get the PermissionId
089         *
090         * @return int
091         */
092        public int getPermissionId()
093        {
094            return permissionId;
095        }
096    
097    
098        /**
099         * Set the value of PermissionId
100         *
101         * @param v new value
102         */
103        public void setPermissionId(int v) throws TorqueException
104        {
105    
106            if (this.permissionId != v)
107            {
108                this.permissionId = v;
109                setModified(true);
110            }
111    
112    
113            if (aTurbinePermission != null && !(aTurbinePermission.getPermissionId() == v))
114            {
115                aTurbinePermission = null;
116            }
117    
118        }
119    
120        
121    
122    
123    
124        private TurbineRole aTurbineRole;
125    
126        /**
127         * Declares an association between this object and a TurbineRole object
128         *
129         * @param v TurbineRole
130         * @throws TorqueException
131         */
132        public void setTurbineRole(TurbineRole v) throws TorqueException
133        {
134            if (v == null)
135            {
136                setRoleId( 0);
137            }
138            else
139            {
140                setRoleId(v.getRoleId());
141            }
142            aTurbineRole = v;
143        }
144    
145    
146        /**
147         * Returns the associated TurbineRole object.
148         * If it was not retrieved before, the object is retrieved from
149         * the database
150         *
151         * @return the associated TurbineRole object
152         * @throws TorqueException
153         */
154        public TurbineRole getTurbineRole()
155            throws TorqueException
156        {
157            if (aTurbineRole == null && (this.roleId != 0))
158            {
159                aTurbineRole = TurbineRolePeer.retrieveByPK(SimpleKey.keyFor(this.roleId));
160            }
161            return aTurbineRole;
162        }
163    
164        /**
165         * Return the associated TurbineRole object
166         * If it was not retrieved before, the object is retrieved from
167         * the database using the passed connection
168         *
169         * @param connection the connection used to retrieve the associated object
170         *        from the database, if it was not retrieved before
171         * @return the associated TurbineRole object
172         * @throws TorqueException
173         */
174        public TurbineRole getTurbineRole(Connection connection)
175            throws TorqueException
176        {
177            if (aTurbineRole == null && (this.roleId != 0))
178            {
179                aTurbineRole = TurbineRolePeer.retrieveByPK(SimpleKey.keyFor(this.roleId), connection);
180            }
181            return aTurbineRole;
182        }
183    
184        /**
185         * Provides convenient way to set a relationship based on a
186         * ObjectKey, for example
187         * <code>bar.setFooKey(foo.getPrimaryKey())</code>
188         *
189         */
190        public void setTurbineRoleKey(ObjectKey key) throws TorqueException
191        {
192    
193            setRoleId(((NumberKey) key).intValue());
194        }
195    
196    
197    
198    
199        private TurbinePermission aTurbinePermission;
200    
201        /**
202         * Declares an association between this object and a TurbinePermission object
203         *
204         * @param v TurbinePermission
205         * @throws TorqueException
206         */
207        public void setTurbinePermission(TurbinePermission v) throws TorqueException
208        {
209            if (v == null)
210            {
211                setPermissionId( 0);
212            }
213            else
214            {
215                setPermissionId(v.getPermissionId());
216            }
217            aTurbinePermission = v;
218        }
219    
220    
221        /**
222         * Returns the associated TurbinePermission object.
223         * If it was not retrieved before, the object is retrieved from
224         * the database
225         *
226         * @return the associated TurbinePermission object
227         * @throws TorqueException
228         */
229        public TurbinePermission getTurbinePermission()
230            throws TorqueException
231        {
232            if (aTurbinePermission == null && (this.permissionId != 0))
233            {
234                aTurbinePermission = TurbinePermissionPeer.retrieveByPK(SimpleKey.keyFor(this.permissionId));
235            }
236            return aTurbinePermission;
237        }
238    
239        /**
240         * Return the associated TurbinePermission object
241         * If it was not retrieved before, the object is retrieved from
242         * the database using the passed connection
243         *
244         * @param connection the connection used to retrieve the associated object
245         *        from the database, if it was not retrieved before
246         * @return the associated TurbinePermission object
247         * @throws TorqueException
248         */
249        public TurbinePermission getTurbinePermission(Connection connection)
250            throws TorqueException
251        {
252            if (aTurbinePermission == null && (this.permissionId != 0))
253            {
254                aTurbinePermission = TurbinePermissionPeer.retrieveByPK(SimpleKey.keyFor(this.permissionId), connection);
255            }
256            return aTurbinePermission;
257        }
258    
259        /**
260         * Provides convenient way to set a relationship based on a
261         * ObjectKey, for example
262         * <code>bar.setFooKey(foo.getPrimaryKey())</code>
263         *
264         */
265        public void setTurbinePermissionKey(ObjectKey key) throws TorqueException
266        {
267    
268            setPermissionId(((NumberKey) key).intValue());
269        }
270       
271            
272        private static List<String> fieldNames = null;
273    
274        /**
275         * Generate a list of field names.
276         *
277         * @return a list of field names
278         */
279        public static synchronized List<String> getFieldNames()
280        {
281            if (fieldNames == null)
282            {
283                fieldNames = new ArrayList<String>();
284                fieldNames.add("RoleId");
285                fieldNames.add("PermissionId");
286                fieldNames = Collections.unmodifiableList(fieldNames);
287            }
288            return fieldNames;
289        }
290    
291        /**
292         * Retrieves a field from the object by field (Java) name passed in as a String.
293         *
294         * @param name field name
295         * @return value
296         */
297        public Object getByName(String name)
298        {
299            if (name.equals("RoleId"))
300            {
301                return new Integer(getRoleId());
302            }
303            if (name.equals("PermissionId"))
304            {
305                return new Integer(getPermissionId());
306            }
307            return null;
308        }
309    
310        /**
311         * Set a field in the object by field (Java) name.
312         *
313         * @param name field name
314         * @param value field value
315         * @return True if value was set, false if not (invalid name / protected field).
316         * @throws IllegalArgumentException if object type of value does not match field object type.
317         * @throws TorqueException If a problem occurs with the set[Field] method.
318         */
319        public boolean setByName(String name, Object value )
320            throws TorqueException, IllegalArgumentException
321        {
322            if (name.equals("RoleId"))
323            {
324                if (value == null || ! (Integer.class.isInstance(value)))
325                {
326                    throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object.");
327                }
328                setRoleId(((Integer) value).intValue());
329                return true;
330            }
331            if (name.equals("PermissionId"))
332            {
333                if (value == null || ! (Integer.class.isInstance(value)))
334                {
335                    throw new IllegalArgumentException("setByName: value parameter was null or not an Integer object.");
336                }
337                setPermissionId(((Integer) value).intValue());
338                return true;
339            }
340            return false;
341        }
342    
343        /**
344         * Retrieves a field from the object by name passed in
345         * as a String.  The String must be one of the static
346         * Strings defined in this Class' Peer.
347         *
348         * @param name peer name
349         * @return value
350         */
351        public Object getByPeerName(String name)
352        {
353            if (name.equals(TurbineRolePermissionPeer.ROLE_ID))
354            {
355                return new Integer(getRoleId());
356            }
357            if (name.equals(TurbineRolePermissionPeer.PERMISSION_ID))
358            {
359                return new Integer(getPermissionId());
360            }
361            return null;
362        }
363    
364        /**
365         * Set field values by Peer Field Name
366         *
367         * @param name field name
368         * @param value field value
369         * @return True if value was set, false if not (invalid name / protected field).
370         * @throws IllegalArgumentException if object type of value does not match field object type.
371         * @throws TorqueException If a problem occurs with the set[Field] method.
372         */
373        public boolean setByPeerName(String name, Object value)
374            throws TorqueException, IllegalArgumentException
375        {
376          if (TurbineRolePermissionPeer.ROLE_ID.equals(name))
377            {
378                return setByName("RoleId", value);
379            }
380          if (TurbineRolePermissionPeer.PERMISSION_ID.equals(name))
381            {
382                return setByName("PermissionId", value);
383            }
384            return false;
385        }
386    
387        /**
388         * Retrieves a field from the object by Position as specified
389         * in the xml schema.  Zero-based.
390         *
391         * @param pos position in xml schema
392         * @return value
393         */
394        public Object getByPosition(int pos)
395        {
396            if (pos == 0)
397            {
398                return new Integer(getRoleId());
399            }
400            if (pos == 1)
401            {
402                return new Integer(getPermissionId());
403            }
404            return null;
405        }
406    
407        /**
408         * Set field values by its position (zero based) in the XML schema.
409         *
410         * @param position The field position
411         * @param value field value
412         * @return True if value was set, false if not (invalid position / protected field).
413         * @throws IllegalArgumentException if object type of value does not match field object type.
414         * @throws TorqueException If a problem occurs with the set[Field] method.
415         */
416        public boolean setByPosition(int position, Object value)
417            throws TorqueException, IllegalArgumentException
418        {
419        if (position == 0)
420            {
421                return setByName("RoleId", value);
422            }
423        if (position == 1)
424            {
425                return setByName("PermissionId", value);
426            }
427            return false;
428        }
429         
430        /**
431         * Stores the object in the database.  If the object is new,
432         * it inserts it; otherwise an update is performed.
433         *
434         * @throws Exception
435         */
436        public void save() throws Exception
437        {
438            save(TurbineRolePermissionPeer.DATABASE_NAME);
439        }
440    
441        /**
442         * Stores the object in the database.  If the object is new,
443         * it inserts it; otherwise an update is performed.
444         * Note: this code is here because the method body is
445         * auto-generated conditionally and therefore needs to be
446         * in this file instead of in the super class, BaseObject.
447         *
448         * @param dbName
449         * @throws TorqueException
450         */
451        public void save(String dbName) throws TorqueException
452        {
453            Connection con = null;
454            try
455            {
456                con = Transaction.begin(dbName);
457                save(con);
458                Transaction.commit(con);
459            }
460            catch(TorqueException e)
461            {
462                Transaction.safeRollback(con);
463                throw e;
464            }
465        }
466    
467        /** flag to prevent endless save loop, if this object is referenced
468            by another object which falls in this transaction. */
469        private boolean alreadyInSave = false;
470        /**
471         * Stores the object in the database.  If the object is new,
472         * it inserts it; otherwise an update is performed.  This method
473         * is meant to be used as part of a transaction, otherwise use
474         * the save() method and the connection details will be handled
475         * internally
476         *
477         * @param con
478         * @throws TorqueException
479         */
480        public void save(Connection con) throws TorqueException
481        {
482            if (!alreadyInSave)
483            {
484                alreadyInSave = true;
485    
486    
487    
488                // If this object has been modified, then save it to the database.
489                if (isModified())
490                {
491                    if (isNew())
492                    {
493                        TurbineRolePermissionPeer.doInsert((TurbineRolePermission) this, con);
494                        setNew(false);
495                    }
496                    else
497                    {
498                        TurbineRolePermissionPeer.doUpdate((TurbineRolePermission) this, con);
499                    }
500                }
501    
502                alreadyInSave = false;
503            }
504        }
505    
506    
507    
508        private final SimpleKey[] pks = new SimpleKey[2];
509        private final ComboKey comboPK = new ComboKey(pks);
510    
511        /**
512         * Set the PrimaryKey with an ObjectKey
513         *
514         * @param key
515         */
516        public void setPrimaryKey(ObjectKey key) throws TorqueException
517        {
518            SimpleKey[] keys = (SimpleKey[]) key.getValue();
519            setRoleId(((NumberKey)keys[0]).intValue());
520            setPermissionId(((NumberKey)keys[1]).intValue());
521        }
522    
523        /**
524         * Set the PrimaryKey using SimpleKeys.
525         *
526         * @param roleId int
527         * @param permissionId int
528         */
529        public void setPrimaryKey( int roleId, int permissionId)
530            throws TorqueException
531        {
532            setRoleId(roleId);
533            setPermissionId(permissionId);
534        }
535    
536        /**
537         * Set the PrimaryKey using a String.
538         */
539        public void setPrimaryKey(String key) throws TorqueException
540        {
541            setPrimaryKey(new ComboKey(key));
542        }
543    
544        /**
545         * returns an id that differentiates this object from others
546         * of its class.
547         */
548        public ObjectKey getPrimaryKey()
549        {
550            pks[0] = SimpleKey.keyFor(getRoleId());
551            pks[1] = SimpleKey.keyFor(getPermissionId());
552            return comboPK;
553        }
554     
555    
556        /**
557         * Makes a copy of this object.
558         * It creates a new object filling in the simple attributes.
559         * It then fills all the association collections and sets the
560         * related objects to isNew=true.
561         */
562        public TurbineRolePermission copy() throws TorqueException
563        {
564            return copy(true);
565        }
566    
567        /**
568         * Makes a copy of this object using connection.
569         * It creates a new object filling in the simple attributes.
570         * It then fills all the association collections and sets the
571         * related objects to isNew=true.
572         *
573         * @param con the database connection to read associated objects.
574         */
575        public TurbineRolePermission copy(Connection con) throws TorqueException
576        {
577            return copy(true, con);
578        }
579    
580        /**
581         * Makes a copy of this object.
582         * It creates a new object filling in the simple attributes.
583         * If the parameter deepcopy is true, it then fills all the
584         * association collections and sets the related objects to
585         * isNew=true.
586         *
587         * @param deepcopy whether to copy the associated objects.
588         */
589        public TurbineRolePermission copy(boolean deepcopy) throws TorqueException
590        {
591            return copyInto(new TurbineRolePermission(), deepcopy);
592        }
593    
594        /**
595         * Makes a copy of this object using connection.
596         * It creates a new object filling in the simple attributes.
597         * If the parameter deepcopy is true, it then fills all the
598         * association collections and sets the related objects to
599         * isNew=true.
600         *
601         * @param deepcopy whether to copy the associated objects.
602         * @param con the database connection to read associated objects.
603         */
604        public TurbineRolePermission copy(boolean deepcopy, Connection con) throws TorqueException
605        {
606            return copyInto(new TurbineRolePermission(), deepcopy, con);
607        }
608      
609        /**
610         * Fills the copyObj with the contents of this object.
611         * The associated objects are also copied and treated as new objects.
612         *
613         * @param copyObj the object to fill.
614         */
615        protected TurbineRolePermission copyInto(TurbineRolePermission copyObj) throws TorqueException
616        {
617            return copyInto(copyObj, true);
618        }
619    
620      
621        /**
622         * Fills the copyObj with the contents of this object using connection.
623         * The associated objects are also copied and treated as new objects.
624         *
625         * @param copyObj the object to fill.
626         * @param con the database connection to read associated objects.
627         */
628        protected TurbineRolePermission copyInto(TurbineRolePermission copyObj, Connection con) throws TorqueException
629        {
630            return copyInto(copyObj, true, con);
631        }
632      
633        /**
634         * Fills the copyObj with the contents of this object.
635         * If deepcopy is true, The associated objects are also copied
636         * and treated as new objects.
637         *
638         * @param copyObj the object to fill.
639         * @param deepcopy whether the associated objects should be copied.
640         */
641        protected TurbineRolePermission copyInto(TurbineRolePermission copyObj, boolean deepcopy) throws TorqueException
642        {
643            copyObj.setRoleId(roleId);
644            copyObj.setPermissionId(permissionId);
645    
646            copyObj.setRoleId( 0);
647            copyObj.setPermissionId( 0);
648    
649            if (deepcopy)
650            {
651            }
652            return copyObj;
653        }
654            
655        
656        /**
657         * Fills the copyObj with the contents of this object using connection.
658         * If deepcopy is true, The associated objects are also copied
659         * and treated as new objects.
660         *
661         * @param copyObj the object to fill.
662         * @param deepcopy whether the associated objects should be copied.
663         * @param con the database connection to read associated objects.
664         */
665        protected TurbineRolePermission copyInto(TurbineRolePermission copyObj, boolean deepcopy, Connection con) throws TorqueException
666        {
667            copyObj.setRoleId(roleId);
668            copyObj.setPermissionId(permissionId);
669    
670            copyObj.setRoleId( 0);
671            copyObj.setPermissionId( 0);
672    
673            if (deepcopy)
674            {
675            }
676            return copyObj;
677        }
678        
679        
680    
681        /**
682         * returns a peer instance associated with this om.  Since Peer classes
683         * are not to have any instance attributes, this method returns the
684         * same instance for all member of this class. The method could therefore
685         * be static, but this would prevent one from overriding the behavior.
686         */
687        public TurbineRolePermissionPeer getPeer()
688        {
689            return peer;
690        }
691    
692        /**
693         * Retrieves the TableMap object related to this Table data without
694         * compiler warnings of using getPeer().getTableMap().
695         *
696         * @return The associated TableMap object.
697         */
698        public TableMap getTableMap() throws TorqueException
699        {
700            return TurbineRolePermissionPeer.getTableMap();
701        }
702    
703    
704        public String toString()
705        {
706            StringBuffer str = new StringBuffer();
707            str.append("TurbineRolePermission:\n");
708            str.append("RoleId = ")
709               .append(getRoleId())
710               .append("\n");
711            str.append("PermissionId = ")
712               .append(getPermissionId())
713               .append("\n");
714            return(str.toString());
715        }
716    }