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

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (show 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 ## ------------------------------------------------------------------------
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