From: <pau...@us...> - 2007-06-06 10:01:28
|
Revision: 966 http://svn.sourceforge.net/everydevel/?rev=966&view=rev Author: paul_the_nomad Date: 2007-06-06 03:01:25 -0700 (Wed, 06 Jun 2007) Log Message: ----------- Node accessors Modified Paths: -------------- trunk/ebase/lib/Everything/Node.pm trunk/ebase/lib/Everything/NodeBase.pm Property Changed: ---------------- trunk/ebase/ Property changes on: trunk/ebase ___________________________________________________________________ Name: svk:merge - 16c2b9cb-492b-4d64-9535-64d4e875048d:/wip/ebase:1014 a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:17930 + 16c2b9cb-492b-4d64-9535-64d4e875048d:/wip/ebase:1015 a6810612-c0f9-0310-9d3e-a9e4af8c5745:/ebase/offline:17930 Modified: trunk/ebase/lib/Everything/Node.pm =================================================================== --- trunk/ebase/lib/Everything/Node.pm 2007-06-06 10:01:02 UTC (rev 965) +++ trunk/ebase/lib/Everything/Node.pm 2007-06-06 10:01:25 UTC (rev 966) @@ -24,6 +24,10 @@ use XML::DOM; use SUPER; +use base 'Class::Accessor'; +__PACKAGE__->follow_best_practice; +__PACKAGE__->mk_accessors(qw/type/); + =cut Modified: trunk/ebase/lib/Everything/NodeBase.pm =================================================================== --- trunk/ebase/lib/Everything/NodeBase.pm 2007-06-06 10:01:02 UTC (rev 965) +++ trunk/ebase/lib/Everything/NodeBase.pm 2007-06-06 10:01:25 UTC (rev 966) @@ -18,6 +18,10 @@ use Everything::NodeCache; use Everything::NodeBase::Workspace; +use base 'Class::Accessor'; +__PACKAGE__->follow_best_practice; +__PACKAGE__->mk_accessors(qw/storage/); + use Scalar::Util 'reftype'; BEGIN @@ -188,10 +192,34 @@ } } + $self->make_node_accessors(\%modules); $self->load_nodemethods(\%modules); return \%modules; } +sub make_node_accessors { + my ( $self, $modules ) = @_; + foreach (keys %$modules) { + /::(\w+)$/; + my $type_name = $1; + my $nodetype_node = $self->getNode( $type_name, 'nodetype' ); + + my $dbtable; + if ($type_name eq 'node' ) { + $dbtable = 'node'; + } else { + $dbtable = $nodetype_node->{sqltable}; + } + next unless $dbtable; + my @tables = split /,/, $dbtable; + my @fields; + push @fields, $self->getFields( $_ ) foreach @tables; + $_->mk_accessors( @fields ); + } + + +} + sub load_nodemethods { my ($self, $modules) = @_; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |