package SWE::DB::HashedProps; use strict; require SWE::DB::IDProps; push our @ISA, 'SWE::DB::IDProps'; require Digest::MD5; require Encode; sub _get_file_name ($$$) { my $self = shift; my $hash = Digest::MD5::md5_hex (Encode::encode ('utf8', $_[0])); my $mkdir = $_[1]; my $dir1 = $self->{root_directory_name} . substr ($hash, 0, 2); my $dir2 = $dir1 . '/' . substr ($hash, 2, 2); substr ($hash, 0, 4) = ''; my $file_name = $dir2 . '/' . $hash . $self->{leaf_suffix}; unless ($mkdir) { return $file_name; } unless (-d $dir1) { mkdir $dir1 or die "$0: $dir1: $!"; } unless (-d $dir2) { mkdir $dir2 or die "$0: $dir2: $!"; } if ($self->{version_control}) { $self->{version_control}->add_directory ($dir1); $self->{version_control}->add_directory ($dir2); } return $file_name; } # _get_file_name 1;