/[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.2 - (hide annotations)
Thu Mar 27 15:17:06 2003 UTC (21 years, 3 months ago) by joko
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +7 -4 lines
namespace fixes for Data::Mungle::*

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

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