/[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.2 - (show 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 ## ------------------------------------------------------------------------
2 ## $Id: Dn.pm,v 1.1 2003/01/20 16:48:18 joko Exp $
3 ## ------------------------------------------------------------------------
4 ## $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 ## ------------------------------------------------------------------------
9
10
11 package Data::Mungle::Identifier::Dn;
12
13 use strict;
14 use warnings;
15
16 use base qw( DesignPattern::Object );
17
18
19 use Data::Mungle::Transform::Deep qw( deep_copy );
20
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