1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
|
package WorkspaceHelper;
# ************************************************************
# Description : Base class and factory for all workspace helpers
# Author : Chad Elliott
# Create Date : 9/01/2004
# ************************************************************
# ************************************************************
# Pragmas
# ************************************************************
use strict;
# ************************************************************
# Data Section
# ************************************************************
my %required;
# ************************************************************
# Subroutine Section
# ************************************************************
sub get {
my $type = shift;
## Create the helper name
$type =~ s/Creator/Helper/;
$type =~ s/=HASH.*//;
## If we can find a helper with this name, we will
## create a singleton of that type and return it.
if (!$required{$type}) {
foreach my $inc (@INC) {
if (-r "$inc/$type.pm") {
require "$type.pm";
$required{$type} = $type->new();
last;
}
}
## If we can't find the helper, we just create an
## empty helper and return that.
$required{$type} = new WorkspaceHelper() if (!$required{$type});
}
return $required{$type};
}
sub new {
my $class = shift;
return bless {}, $class;
}
sub modify_value {
my($self, $name, $value) = @_;
return $value;
}
sub modify_libpath {
#my $self = shift;
#my $str = shift;
#my $reldir = shift;
#my $libname = shift;
return undef;
}
sub write_settings {
#my $self = shift;
#my $fh = shift;
#my @locals = @_;
return 1, undef;
}
sub perform_custom_processing {
#my $self = shift;
#my $fh = shift;
#my $creator = shift;
#my $toplevel = shift;
}
1;
|