/[cvs]/nfo/perl/libs/Data/Mungle/Identifier/Dn.pm
ViewVC logotype

Annotation of /nfo/perl/libs/Data/Mungle/Identifier/Dn.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (hide annotations)
Mon Jan 20 16:48:18 2003 UTC (21 years, 5 months ago) by joko
Branch: MAIN
+ initial check-in: refactored from code in Torus::Driver::ldap - helper-module for Data::Storage::Handler::NetLDAP

1 joko 1.1 ## ------------------------------------------------------------------------
2     ## $Id$
3     ## ------------------------------------------------------------------------
4     ## $Log$
5     ## ------------------------------------------------------------------------
6    
7    
8     package Data::Identifier::Dn;
9    
10     use strict;
11     use warnings;
12    
13     use base qw( DesignPattern::Object );
14    
15    
16     use Data::Transform::Deep qw( deep_copy );
17    
18     # get logger instance
19     my $logger = Log::Dispatch::Config->instance;
20    
21    
22     sub asString {
23     my $self = shift;
24    
25     my $basedn = $self->{base};
26     my $type = $self->{type};
27     my $ou_address = $self->{name};
28    
29     #print "creating deep ou (basedn='$basedn')", "\n" if $DEBUGLEVEL > 3;
30     $logger->debug( __PACKAGE__ . "->asString( basedn='$basedn', type='$type', ou_address='$ou_address' )");
31    
32     #print "basedn: $basedn", "\n";
33     #print "type: $type", "\n";
34     #print "ou_address: $ou_address", "\n";
35    
36     #print "ref: ", ref $ou_address, "\n";
37    
38     my @parts = split(/\./, $ou_address);
39    
40     my $dn = '';
41     foreach (reverse @parts) {
42     $dn .= "$type=$_, ";
43     }
44     $dn .= $basedn;
45    
46     $logger->debug( __PACKAGE__ . "->asString: dn '$dn'" );
47    
48     return $dn;
49     }
50    
51     sub getClassName {
52     my $self = shift;
53     $self->_resolveClassName();
54     return $self->{className};
55     }
56    
57     sub getType {
58     my $self = shift;
59     return $self->{type};
60     }
61    
62     sub _resolveClassName {
63     my $self = shift;
64     $self->{type} ||= '';
65     # resolve classname from type
66     if ($self->{type} eq 'ou') {
67     $self->{className} = 'organizationalUnit';
68     }
69     }
70    
71     sub getContent {
72     my $self = shift;
73     #$self->_resolveClassName();
74     #my $content = "name='$self->{name}', base='$self->{base}', type='$self->{type}', className='$self->{className}'";
75     my $content = "name='$self->{name}', base='$self->{base}', type='$self->{type}'";
76     return $content;
77     }
78    
79     sub getAllRelativeDNs {
80     my $self = shift;
81     my $dn = $self->asString();
82    
83     $dn =~ s/$self->{base}//;
84    
85     my @DNs_work = split(/,+\s+/, $dn);
86    
87     my @DNs;
88     my @DNs_relative;
89     foreach (reverse @DNs_work) {
90    
91     #print "elem: '", $_, "'\n";
92     my $dn_work = $_;
93     unshift @DNs_relative, $dn_work;
94    
95     my $name = $dn_work;
96     $name =~ s/^.+?=//;
97    
98     push @DNs, {
99     full => join(", ", @DNs_relative, $self->{base}),
100     relative => deep_copy(\@DNs_relative),
101     current => $dn_work,
102     name => $name,
103     };
104     }
105    
106     return \@DNs;
107    
108     }
109    
110     1;

MailToCvsAdmin">MailToCvsAdmin
ViewVC Help
Powered by ViewVC 1.1.26 RSS 2.0 feed