-
Notifications
You must be signed in to change notification settings - Fork 4
/
AttrDef.pm
58 lines (46 loc) · 1.58 KB
/
AttrDef.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# See bottom of file for license and copyright information
use strict;
use integer;
package Foswiki::Plugins::ActionTrackerPlugin::AttrDef;
sub new {
my ( $class, %options) = @_;
my $this = { %options };
$this->{size} ||= 1;
$this->{match} ||= 1;
return bless( $this, $class );
}
sub stringify {
my $this = shift;
my $text = 'type=' . $this->{type} . ' size=' . $this->{size};
$text .= ' redefinable' if ( $this->{definable} );
$text .= ' matchable' if ( $this->{match} );
if ( defined( $this->{values} ) ) {
$text .= ' values=' . join( ',', @{ $this->{values} } );
}
return 'AttrDef(' . $text . ')';
}
# PUBLIC return the first value in the select set, or undef
sub firstSelect {
my $this = shift;
if ( defined( $this->{values} ) ) {
return @{ $this->{values} }[0];
}
return undef;
}
sub isRedefinable {
my $this = shift;
return $this->{defineable} ? 1 : 0;
}
1;
__END__
Copyright (C) Motorola 2002 - All rights reserved
Copyright (C) 2004-2011 Crawford Currie http://c-dot.co.uk
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details, published at
http://www.gnu.org/copyleft/gpl.html