Merge branch 'master' of https://github.com/jgoodman/Freeside
[freeside.git] / rt / lib / RT / ObjectTopic.pm
1 # BEGIN BPS TAGGED BLOCK {{{
2 #
3 # COPYRIGHT:
4 #
5 # This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
6 #                                          <sales@bestpractical.com>
7 #
8 # (Except where explicitly superseded by other copyright notices)
9 #
10 #
11 # LICENSE:
12 #
13 # This work is made available to you under the terms of Version 2 of
14 # the GNU General Public License. A copy of that license should have
15 # been provided with this software, but in any event can be snarfed
16 # from www.gnu.org.
17 #
18 # This work is distributed in the hope that it will be useful, but
19 # WITHOUT ANY WARRANTY; without even the implied warranty of
20 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
21 # General Public License for more details.
22 #
23 # You should have received a copy of the GNU General Public License
24 # along with this program; if not, write to the Free Software
25 # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
26 # 02110-1301 or visit their web page on the internet at
27 # http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
28 #
29 #
30 # CONTRIBUTION SUBMISSION POLICY:
31 #
32 # (The following paragraph is not intended to limit the rights granted
33 # to you to modify and distribute this software under the terms of
34 # the GNU General Public License and is only of importance to you if
35 # you choose to contribute your changes and enhancements to the
36 # community by submitting them to Best Practical Solutions, LLC.)
37 #
38 # By intentionally submitting any modifications, corrections or
39 # derivatives to this work, or any other work intended for use with
40 # Request Tracker, to Best Practical Solutions, LLC, you confirm that
41 # you are the copyright holder for those contributions and you grant
42 # Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
43 # royalty-free, perpetual, license to use, copy, create derivative
44 # works based on those contributions, and sublicense and distribute
45 # those contributions and any derivatives thereof.
46 #
47 # END BPS TAGGED BLOCK }}}
48
49 =head1 NAME
50
51 RT::ObjectTopic
52
53 =head1 SYNOPSIS
54
55 =head1 DESCRIPTION
56
57 =head1 METHODS
58
59 =cut
60
61 package RT::ObjectTopic;
62 use strict;
63 use warnings;
64 no warnings 'redefine';
65
66 use RT::Record; 
67 use RT::Topic;
68
69
70 use base qw( RT::Record );
71
72 sub _Init {
73   my $self = shift; 
74
75   $self->Table('ObjectTopics');
76   $self->SUPER::_Init(@_);
77 }
78
79
80
81
82
83 =head2 Create PARAMHASH
84
85 Create takes a hash of values and creates a row in the database:
86
87   int(11) 'Topic'.
88   varchar(64) 'ObjectType'.
89   int(11) 'ObjectId'.
90
91 =cut
92
93
94
95
96 sub Create {
97     my $self = shift;
98     my %args = ( 
99                 Topic => '0',
100                 ObjectType => '',
101                 ObjectId => '0',
102
103                   @_);
104     $self->SUPER::Create(
105                          Topic => $args{'Topic'},
106                          ObjectType => $args{'ObjectType'},
107                          ObjectId => $args{'ObjectId'},
108 );
109
110 }
111
112
113
114 =head2 id
115
116 Returns the current value of id. 
117 (In the database, id is stored as int(11).)
118
119
120 =cut
121
122
123 =head2 Topic
124
125 Returns the current value of Topic. 
126 (In the database, Topic is stored as int(11).)
127
128
129
130 =head2 SetTopic VALUE
131
132
133 Set Topic to VALUE. 
134 Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
135 (In the database, Topic will be stored as a int(11).)
136
137
138 =cut
139
140
141 =head2 TopicObj
142
143 Returns the Topic Object which has the id returned by Topic
144
145
146 =cut
147
148 sub TopicObj {
149         my $self = shift;
150         my $Topic =  RT::Topic->new($self->CurrentUser);
151         $Topic->Load($self->Topic());
152         return($Topic);
153 }
154
155 =head2 ObjectType
156
157 Returns the current value of ObjectType. 
158 (In the database, ObjectType is stored as varchar(64).)
159
160
161
162 =head2 SetObjectType VALUE
163
164
165 Set ObjectType to VALUE. 
166 Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
167 (In the database, ObjectType will be stored as a varchar(64).)
168
169
170 =cut
171
172
173 =head2 ObjectId
174
175 Returns the current value of ObjectId. 
176 (In the database, ObjectId is stored as int(11).)
177
178
179
180 =head2 SetObjectId VALUE
181
182
183 Set ObjectId to VALUE. 
184 Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
185 (In the database, ObjectId will be stored as a int(11).)
186
187
188 =cut
189
190
191
192 sub _CoreAccessible {
193     {
194      
195         id =>
196                 {read => 1, type => 'int(11)', default => ''},
197         Topic => 
198                 {read => 1, write => 1, type => 'int(11)', default => '0'},
199         ObjectType => 
200                 {read => 1, write => 1, type => 'varchar(64)', default => ''},
201         ObjectId => 
202                 {read => 1, write => 1, type => 'int(11)', default => '0'},
203
204  }
205 };
206
207 RT::Base->_ImportOverlays();
208
209 1;