Upgrade to 4.2.2
[usit-rt.git] / lib / RT / ObjectTopic.pm
CommitLineData
84fb5b46
MKG
1# BEGIN BPS TAGGED BLOCK {{{
2#
3# COPYRIGHT:
4#
320f0092 5# This software is Copyright (c) 1996-2014 Best Practical Solutions, LLC
84fb5b46
MKG
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
84fb5b46
MKG
49=head1 NAME
50
51RT::ObjectTopic
52
84fb5b46
MKG
53=head1 SYNOPSIS
54
55=head1 DESCRIPTION
56
57=head1 METHODS
58
59=cut
60
84fb5b46 61package RT::ObjectTopic;
403d7b0b
MKG
62use strict;
63use warnings;
64no warnings 'redefine';
65
84fb5b46
MKG
66use base qw( RT::Record );
67
af59614d
MKG
68use RT::Topic;
69
84fb5b46
MKG
70sub _Init {
71 my $self = shift;
72
73 $self->Table('ObjectTopics');
74 $self->SUPER::_Init(@_);
75}
76
77
78
79
80
81=head2 Create PARAMHASH
82
83Create takes a hash of values and creates a row in the database:
84
85 int(11) 'Topic'.
86 varchar(64) 'ObjectType'.
87 int(11) 'ObjectId'.
88
89=cut
90
91
92
93
94sub Create {
95 my $self = shift;
af59614d 96 my %args = (
84fb5b46
MKG
97 Topic => '0',
98 ObjectType => '',
99 ObjectId => '0',
af59614d 100 @_);
84fb5b46
MKG
101 $self->SUPER::Create(
102 Topic => $args{'Topic'},
103 ObjectType => $args{'ObjectType'},
104 ObjectId => $args{'ObjectId'},
af59614d 105 );
84fb5b46
MKG
106}
107
108
109
110=head2 id
111
112Returns the current value of id.
113(In the database, id is stored as int(11).)
114
115
116=cut
117
118
119=head2 Topic
120
121Returns the current value of Topic.
122(In the database, Topic is stored as int(11).)
123
124
125
126=head2 SetTopic VALUE
127
128
129Set Topic to VALUE.
130Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
131(In the database, Topic will be stored as a int(11).)
132
133
134=cut
135
136
137=head2 TopicObj
138
139Returns the Topic Object which has the id returned by Topic
140
141
142=cut
143
144sub TopicObj {
af59614d
MKG
145 my $self = shift;
146 my $Topic = RT::Topic->new($self->CurrentUser);
147 $Topic->Load($self->Topic());
148 return($Topic);
84fb5b46
MKG
149}
150
151=head2 ObjectType
152
153Returns the current value of ObjectType.
154(In the database, ObjectType is stored as varchar(64).)
155
156
157
158=head2 SetObjectType VALUE
159
160
161Set ObjectType to VALUE.
162Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
163(In the database, ObjectType will be stored as a varchar(64).)
164
165
166=cut
167
168
169=head2 ObjectId
170
171Returns the current value of ObjectId.
172(In the database, ObjectId is stored as int(11).)
173
174
175
176=head2 SetObjectId VALUE
177
178
179Set ObjectId to VALUE.
180Returns (1, 'Status message') on success and (0, 'Error Message') on failure.
181(In the database, ObjectId will be stored as a int(11).)
182
183
184=cut
185
186
187
188sub _CoreAccessible {
189 {
84fb5b46 190 id =>
af59614d 191 {read => 1, type => 'int(11)', default => ''},
84fb5b46 192 Topic =>
af59614d 193 {read => 1, write => 1, type => 'int(11)', default => '0'},
84fb5b46 194 ObjectType =>
af59614d 195 {read => 1, write => 1, type => 'varchar(64)', default => ''},
84fb5b46 196 ObjectId =>
af59614d 197 {read => 1, write => 1, type => 'int(11)', default => '0'},
84fb5b46
MKG
198
199 }
200};
201
af59614d
MKG
202sub FindDependencies {
203 my $self = shift;
204 my ($walker, $deps) = @_;
205
206 $self->SUPER::FindDependencies($walker, $deps);
207
208 $deps->Add( out => $self->TopicObj );
209
210 my $obj = $self->ObjectType->new( $self->CurrentUser );
211 $obj->Load( $self->ObjectId );
212 $deps->Add( out => $obj );
213}
214
84fb5b46
MKG
215RT::Base->_ImportOverlays();
216
2171;