StaticClassGroup.pm 911 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package Logos::StaticClassGroup;
  2. use Logos::Group;
  3. our @ISA = ('Logos::Group');
  4. sub new {
  5. my $proto = shift;
  6. my $class = ref($proto) || $proto;
  7. my $self = Logos::Group->new();
  8. $self->name("_staticClass");
  9. $self->explicit(0);
  10. $self->{DECLAREDONLYCLASSES} = {};
  11. $self->{USEDCLASSES} = {};
  12. $self->{USEDMETACLASSES} = {};
  13. bless($self, $class);
  14. return $self;
  15. }
  16. sub addUsedClass {
  17. my $self = shift;
  18. my $class = shift;
  19. $self->{USEDCLASSES}{$class}++;
  20. }
  21. sub addUsedMetaClass {
  22. my $self = shift;
  23. my $class = shift;
  24. $self->{USEDMETACLASSES}{$class}++;
  25. }
  26. sub addDeclaredOnlyClass {
  27. my $self = shift;
  28. my $class = shift;
  29. $self->{DECLAREDONLYCLASSES}{$class}++;
  30. }
  31. sub declaredOnlyClasses {
  32. my $self = shift;
  33. return $self->{DECLAREDONLYCLASSES};
  34. }
  35. sub usedClasses {
  36. my $self = shift;
  37. return $self->{USEDCLASSES};
  38. }
  39. sub usedMetaClasses {
  40. my $self = shift;
  41. return $self->{USEDMETACLASSES};
  42. }
  43. 1;