12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- package Logos::Generator::internal::Class;
- use strict;
- use parent qw(Logos::Generator::Base::Class);
- sub superVariable {
- my $self = shift;
- my $class = shift;
- return Logos::sigil("superclass").$class->group->name."\$".$class->name;
- }
- sub superMetaVariable {
- my $self = shift;
- my $class = shift;
- return Logos::sigil("supermetaclass").$class->group->name."\$".$class->name;
- }
- sub declarations {
- my $self = shift;
- my $class = shift;
- my $return = "";
- if($class->hasinstancehooks) {
- $return .= "static Class ".$self->superVariable($class)."; ";
- }
- if($class->hasmetahooks) {
- $return .= "static Class ".$self->superMetaVariable($class)."; ";
- }
- $return .= $self->SUPER::declarations($class);
- return $return;
- }
- sub initializers {
- my $self = shift;
- my $class = shift;
- my $return = "";
- if($class->required || $class->overridden || $class->hasinstancehooks || $class->hasmetahooks) {
- $return .= "Class ".$self->variable($class)." = ".$self->_initExpression($class)."; ";
- }
- if($class->hasmetahooks) {
- $return .= "Class ".$self->metaVariable($class)." = ".$self->_metaInitExpression($class)."; ";
- }
- if ($class->hasinstancehooks) {
- $return .= $self->superVariable($class)." = class_getSuperclass(".$self->variable($class)."); ";
- }
- if ($class->hasmetahooks) {
- $return .= $self->superMetaVariable($class)." = class_getSuperclass(".$self->metaVariable($class)."); ";
- }
- $return .= $self->SUPER::initializers($class);
- return $return;
- }
- 1;
|