Function.pm 964 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package Logos::Function;
  2. use strict;
  3. sub new {
  4. my $proto = shift;
  5. my $function = ref($proto) || $proto;
  6. my $self = {};
  7. $self->{NAME} = undef;
  8. $self->{RETVAL} = undef;
  9. $self->{ARGS} = [];
  10. $self->{GROUP} = undef;
  11. $self->{REQUIRED} = 0;
  12. bless($self, $function);
  13. return $self;
  14. }
  15. ##################### #
  16. # Setters and Getters #
  17. # #####################
  18. sub name {
  19. my $self = shift;
  20. if(@_) { $self->{NAME} = shift; }
  21. return $self->{NAME};
  22. }
  23. sub retval {
  24. my $self = shift;
  25. if(@_) { $self->{RETVAL} = shift; }
  26. return $self->{RETVAL};
  27. }
  28. sub args {
  29. my $self = shift;
  30. return $self->{ARGS};
  31. }
  32. sub group {
  33. my $self = shift;
  34. if(@_) { $self->{GROUP} = shift; }
  35. return $self->{GROUP};
  36. }
  37. sub required {
  38. my $self = shift;
  39. if(@_) { $self->{REQUIRED} = shift; }
  40. return $self->{REQUIRED};
  41. }
  42. sub initRequired {
  43. my $self = shift;
  44. return 1;
  45. }
  46. ##### #
  47. # END #
  48. # #####
  49. sub addArg {
  50. my $self = shift;
  51. my $arg = shift;
  52. push(@{$self->{ARGS}}, $arg);
  53. }
  54. 1;