From 8186754b8604001df3179f7281b99c2519dfa862 Mon Sep 17 00:00:00 2001 From: Graham Knop Date: Sun, 18 Apr 2010 18:50:56 -0500 Subject: [PATCH] asset immutability --- lib/WebGUI/Asset.pm | 1 + lib/WebGUI/Asset/Event.pm | 1 + lib/WebGUI/Asset/File.pm | 2 +- lib/WebGUI/Asset/File/GalleryFile.pm | 1 + lib/WebGUI/Asset/File/GalleryFile/Photo.pm | 1 + lib/WebGUI/Asset/File/Image.pm | 1 + lib/WebGUI/Asset/File/ZipArchive.pm | 1 + lib/WebGUI/Asset/FilePile.pm | 1 + lib/WebGUI/Asset/MapPoint.pm | 1 + lib/WebGUI/Asset/MatrixListing.pm | 2 ++ lib/WebGUI/Asset/Post.pm | 2 +- lib/WebGUI/Asset/Post/Thread.pm | 1 + lib/WebGUI/Asset/Redirect.pm | 1 + lib/WebGUI/Asset/RichEdit.pm | 2 +- lib/WebGUI/Asset/Shortcut.pm | 1 + lib/WebGUI/Asset/Sku.pm | 1 + lib/WebGUI/Asset/Sku/Ad.pm | 1 + lib/WebGUI/Asset/Sku/Donation.pm | 1 + lib/WebGUI/Asset/Sku/EMSBadge.pm | 1 + lib/WebGUI/Asset/Sku/EMSRibbon.pm | 1 + lib/WebGUI/Asset/Sku/EMSTicket.pm | 1 + lib/WebGUI/Asset/Sku/EMSToken.pm | 1 + lib/WebGUI/Asset/Sku/FlatDiscount.pm | 1 + lib/WebGUI/Asset/Sku/Product.pm | 1 + lib/WebGUI/Asset/Sku/Subscription.pm | 1 + lib/WebGUI/Asset/Sku/ThingyRecord.pm | 1 + lib/WebGUI/Asset/Snippet.pm | 2 +- lib/WebGUI/Asset/Story.pm | 1 + lib/WebGUI/Asset/Template.pm | 1 + lib/WebGUI/Asset/WikiPage.pm | 2 +- lib/WebGUI/Asset/Wobject.pm | 1 + lib/WebGUI/Asset/Wobject/Article.pm | 1 + lib/WebGUI/Asset/Wobject/Calendar.pm | 1 + lib/WebGUI/Asset/Wobject/Carousel.pm | 1 + lib/WebGUI/Asset/Wobject/Collaboration.pm | 1 + lib/WebGUI/Asset/Wobject/Collaboration/Newsletter.pm | 1 + lib/WebGUI/Asset/Wobject/Dashboard.pm | 1 + lib/WebGUI/Asset/Wobject/DataForm.pm | 1 + lib/WebGUI/Asset/Wobject/DataTable.pm | 1 + lib/WebGUI/Asset/Wobject/EventManagementSystem.pm | 1 + lib/WebGUI/Asset/Wobject/Folder.pm | 1 + lib/WebGUI/Asset/Wobject/Gallery.pm | 1 + lib/WebGUI/Asset/Wobject/GalleryAlbum.pm | 1 + lib/WebGUI/Asset/Wobject/HttpProxy.pm | 1 + lib/WebGUI/Asset/Wobject/InOutBoard.pm | 1 + lib/WebGUI/Asset/Wobject/Layout.pm | 1 + lib/WebGUI/Asset/Wobject/Map.pm | 1 + lib/WebGUI/Asset/Wobject/Matrix.pm | 1 + lib/WebGUI/Asset/Wobject/MessageBoard.pm | 1 + lib/WebGUI/Asset/Wobject/MultiSearch.pm | 1 + lib/WebGUI/Asset/Wobject/Navigation.pm | 1 + lib/WebGUI/Asset/Wobject/Poll.pm | 1 + lib/WebGUI/Asset/Wobject/ProjectManager.pm | 2 +- lib/WebGUI/Asset/Wobject/SQLReport.pm | 1 + lib/WebGUI/Asset/Wobject/Search.pm | 1 + lib/WebGUI/Asset/Wobject/Shelf.pm | 1 + lib/WebGUI/Asset/Wobject/StockData.pm | 1 + lib/WebGUI/Asset/Wobject/StoryArchive.pm | 1 + lib/WebGUI/Asset/Wobject/StoryTopic.pm | 1 + lib/WebGUI/Asset/Wobject/Survey.pm | 1 + lib/WebGUI/Asset/Wobject/SyndicatedContent.pm | 1 + lib/WebGUI/Asset/Wobject/Thingy.pm | 1 + lib/WebGUI/Asset/Wobject/TimeTracking.pm | 1 + lib/WebGUI/Asset/Wobject/UserList.pm | 1 + lib/WebGUI/Asset/Wobject/WeatherData.pm | 1 + lib/WebGUI/Asset/Wobject/WikiMaster.pm | 1 + lib/WebGUI/Definition/Meta/Asset.pm | 10 +++++++++- lib/WebGUI/Definition/Meta/Class.pm | 8 ++++++++ 68 files changed, 84 insertions(+), 7 deletions(-) diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index f19db9fb7..4fe8ff277 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -2838,4 +2838,5 @@ sub www_widgetView { return $self->outputWidgetMarkup($width, $height, $templateId, $styleTemplateId); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Event.pm b/lib/WebGUI/Asset/Event.pm index 6f46b5665..9022b8cad 100644 --- a/lib/WebGUI/Asset/Event.pm +++ b/lib/WebGUI/Asset/Event.pm @@ -2360,5 +2360,6 @@ equal and then choose by assetId. =cut +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/File.pm b/lib/WebGUI/Asset/File.pm index 85088f2b0..6617c800c 100644 --- a/lib/WebGUI/Asset/File.pm +++ b/lib/WebGUI/Asset/File.pm @@ -649,5 +649,5 @@ sub www_view { return 'chunked'; } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/File/GalleryFile.pm b/lib/WebGUI/Asset/File/GalleryFile.pm index f812a69ba..642a7c405 100644 --- a/lib/WebGUI/Asset/File/GalleryFile.pm +++ b/lib/WebGUI/Asset/File/GalleryFile.pm @@ -1184,4 +1184,5 @@ sub setPrivileges { } +__PACKAGE__->meta->make_immutable; 1; # Who knew the truth would be so obvious? diff --git a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm index fd30cb0f1..c288a6f3b 100644 --- a/lib/WebGUI/Asset/File/GalleryFile/Photo.pm +++ b/lib/WebGUI/Asset/File/GalleryFile/Photo.pm @@ -585,4 +585,5 @@ sub www_showConfirmation { ); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/File/Image.pm b/lib/WebGUI/Asset/File/Image.pm index 3e31ddef3..ed43336dd 100644 --- a/lib/WebGUI/Asset/File/Image.pm +++ b/lib/WebGUI/Asset/File/Image.pm @@ -824,4 +824,5 @@ sub www_crop { return $self->getAdminConsole->render($f->print.$image,$i18n->get("crop image")); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/File/ZipArchive.pm b/lib/WebGUI/Asset/File/ZipArchive.pm index c5b892836..489cc87d5 100644 --- a/lib/WebGUI/Asset/File/ZipArchive.pm +++ b/lib/WebGUI/Asset/File/ZipArchive.pm @@ -252,5 +252,6 @@ sub www_view { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/FilePile.pm b/lib/WebGUI/Asset/FilePile.pm index 22cef39fe..17b9ac227 100644 --- a/lib/WebGUI/Asset/FilePile.pm +++ b/lib/WebGUI/Asset/FilePile.pm @@ -270,5 +270,6 @@ sub www_edit { } } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/MapPoint.pm b/lib/WebGUI/Asset/MapPoint.pm index 616c24e08..85bfff70d 100644 --- a/lib/WebGUI/Asset/MapPoint.pm +++ b/lib/WebGUI/Asset/MapPoint.pm @@ -390,6 +390,7 @@ sub www_view { return "redirect"; } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/MatrixListing.pm b/lib/WebGUI/Asset/MatrixListing.pm index 921039b10..2cb7893a8 100644 --- a/lib/WebGUI/Asset/MatrixListing.pm +++ b/lib/WebGUI/Asset/MatrixListing.pm @@ -1090,6 +1090,8 @@ sub www_viewScreenshots { return $self->processTemplate($var,$self->getParent->get("screenshotsTemplateId")); } + +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Post.pm b/lib/WebGUI/Asset/Post.pm index 64e90584c..07637dba2 100644 --- a/lib/WebGUI/Asset/Post.pm +++ b/lib/WebGUI/Asset/Post.pm @@ -1818,6 +1818,6 @@ sub www_view { return $self->getThread->www_view($self); } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Post/Thread.pm b/lib/WebGUI/Asset/Post/Thread.pm index cb555d1e8..1a6f11821 100644 --- a/lib/WebGUI/Asset/Post/Thread.pm +++ b/lib/WebGUI/Asset/Post/Thread.pm @@ -1394,5 +1394,6 @@ sub www_view { +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Redirect.pm b/lib/WebGUI/Asset/Redirect.pm index 77369912d..a5ad06223 100644 --- a/lib/WebGUI/Asset/Redirect.pm +++ b/lib/WebGUI/Asset/Redirect.pm @@ -136,5 +136,6 @@ sub www_view { return $i18n->get('self_referential'); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/RichEdit.pm b/lib/WebGUI/Asset/RichEdit.pm index b583f8395..490e192e7 100644 --- a/lib/WebGUI/Asset/RichEdit.pm +++ b/lib/WebGUI/Asset/RichEdit.pm @@ -676,6 +676,6 @@ sub www_edit { } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Shortcut.pm b/lib/WebGUI/Asset/Shortcut.pm index e793f8938..7198be202 100644 --- a/lib/WebGUI/Asset/Shortcut.pm +++ b/lib/WebGUI/Asset/Shortcut.pm @@ -1288,5 +1288,6 @@ sub getShortcutsForAssetId { return WebGUI::Asset->getRoot($session)->getLineage(['descendants'], $properties); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku.pm b/lib/WebGUI/Asset/Sku.pm index d6a2498a6..d9f16f7d5 100644 --- a/lib/WebGUI/Asset/Sku.pm +++ b/lib/WebGUI/Asset/Sku.pm @@ -672,4 +672,5 @@ sub www_view { return "chunked"; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/Ad.pm b/lib/WebGUI/Asset/Sku/Ad.pm index 02e925d49..b3a7dcd26 100644 --- a/lib/WebGUI/Asset/Sku/Ad.pm +++ b/lib/WebGUI/Asset/Sku/Ad.pm @@ -622,5 +622,6 @@ sub www_renew { return $self->www_view; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/Donation.pm b/lib/WebGUI/Asset/Sku/Donation.pm index a3e2db681..485e340a6 100644 --- a/lib/WebGUI/Asset/Sku/Donation.pm +++ b/lib/WebGUI/Asset/Sku/Donation.pm @@ -187,4 +187,5 @@ sub www_donate { return $self->www_view; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/EMSBadge.pm b/lib/WebGUI/Asset/Sku/EMSBadge.pm index 9777ce689..12422c2b9 100644 --- a/lib/WebGUI/Asset/Sku/EMSBadge.pm +++ b/lib/WebGUI/Asset/Sku/EMSBadge.pm @@ -519,4 +519,5 @@ sub www_edit { return $self->processStyle('

'.$i18n->get('ems badge').'

'.$self->getEditForm->print); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/EMSRibbon.pm b/lib/WebGUI/Asset/Sku/EMSRibbon.pm index 6aebc89d6..b510b2de9 100644 --- a/lib/WebGUI/Asset/Sku/EMSRibbon.pm +++ b/lib/WebGUI/Asset/Sku/EMSRibbon.pm @@ -287,4 +287,5 @@ sub www_viewAll { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/EMSTicket.pm b/lib/WebGUI/Asset/Sku/EMSTicket.pm index 5b7dd8411..23688db94 100644 --- a/lib/WebGUI/Asset/Sku/EMSTicket.pm +++ b/lib/WebGUI/Asset/Sku/EMSTicket.pm @@ -591,4 +591,5 @@ sub www_viewAll { +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/EMSToken.pm b/lib/WebGUI/Asset/Sku/EMSToken.pm index 1cb38e7d7..5ecb9c084 100644 --- a/lib/WebGUI/Asset/Sku/EMSToken.pm +++ b/lib/WebGUI/Asset/Sku/EMSToken.pm @@ -281,4 +281,5 @@ sub www_viewAll { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/FlatDiscount.pm b/lib/WebGUI/Asset/Sku/FlatDiscount.pm index 770119c4a..f25926bab 100644 --- a/lib/WebGUI/Asset/Sku/FlatDiscount.pm +++ b/lib/WebGUI/Asset/Sku/FlatDiscount.pm @@ -239,4 +239,5 @@ sub www_addToCart { return $self->www_view; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/Product.pm b/lib/WebGUI/Asset/Sku/Product.pm index e5fec5b86..0cefe97c8 100644 --- a/lib/WebGUI/Asset/Sku/Product.pm +++ b/lib/WebGUI/Asset/Sku/Product.pm @@ -1879,5 +1879,6 @@ override www_view => sub { super(); }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/Subscription.pm b/lib/WebGUI/Asset/Sku/Subscription.pm index b6f88bd88..9d89dd4ec 100644 --- a/lib/WebGUI/Asset/Sku/Subscription.pm +++ b/lib/WebGUI/Asset/Sku/Subscription.pm @@ -1011,5 +1011,6 @@ sub www_redeemSubscriptionCode { return $self->processStyle($self->processTemplate($var, $self->redeemSubscriptionCodeTemplateId)); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Sku/ThingyRecord.pm b/lib/WebGUI/Asset/Sku/ThingyRecord.pm index a87725a21..d510325cd 100644 --- a/lib/WebGUI/Asset/Sku/ThingyRecord.pm +++ b/lib/WebGUI/Asset/Sku/ThingyRecord.pm @@ -721,6 +721,7 @@ sub www_renew { return $self->www_editRecord( { message => $i18n->get('renewal added to cart') . ' ^ViewCart;' } ); } ## end sub www_renew +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Snippet.pm b/lib/WebGUI/Asset/Snippet.pm index 78e998c42..f65bca0a8 100644 --- a/lib/WebGUI/Asset/Snippet.pm +++ b/lib/WebGUI/Asset/Snippet.pm @@ -312,6 +312,6 @@ sub www_view { return $output; } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Story.pm b/lib/WebGUI/Asset/Story.pm index 648c1852f..fe4dcbdc9 100644 --- a/lib/WebGUI/Asset/Story.pm +++ b/lib/WebGUI/Asset/Story.pm @@ -920,6 +920,7 @@ sub www_view { } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Template.pm b/lib/WebGUI/Asset/Template.pm index 1c5bc1e37..82175ee7b 100644 --- a/lib/WebGUI/Asset/Template.pm +++ b/lib/WebGUI/Asset/Template.pm @@ -1174,5 +1174,6 @@ sub www_view { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/WikiPage.pm b/lib/WebGUI/Asset/WikiPage.pm index a8c22fb1e..caa5ac6a7 100644 --- a/lib/WebGUI/Asset/WikiPage.pm +++ b/lib/WebGUI/Asset/WikiPage.pm @@ -647,5 +647,5 @@ sub www_view { } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject.pm b/lib/WebGUI/Asset/Wobject.pm index 1b35dcaed..13313f0f4 100644 --- a/lib/WebGUI/Asset/Wobject.pm +++ b/lib/WebGUI/Asset/Wobject.pm @@ -517,5 +517,6 @@ sub www_view { return "chunked"; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Article.pm b/lib/WebGUI/Asset/Wobject/Article.pm index c75bca557..b457fbf6a 100644 --- a/lib/WebGUI/Asset/Wobject/Article.pm +++ b/lib/WebGUI/Asset/Wobject/Article.pm @@ -438,5 +438,6 @@ override www_view => sub { }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Calendar.pm b/lib/WebGUI/Asset/Wobject/Calendar.pm index db9b43e68..d88ea0004 100644 --- a/lib/WebGUI/Asset/Wobject/Calendar.pm +++ b/lib/WebGUI/Asset/Wobject/Calendar.pm @@ -2200,5 +2200,6 @@ toUserTimeZone methods of WebGUI::DateTime for to make less confusion. =cut +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Carousel.pm b/lib/WebGUI/Asset/Wobject/Carousel.pm index 963660eb4..61bc36be3 100644 --- a/lib/WebGUI/Asset/Wobject/Carousel.pm +++ b/lib/WebGUI/Asset/Wobject/Carousel.pm @@ -217,5 +217,6 @@ sub view { return $self->processTemplate($var, undef, $self->{_viewTemplate}); } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Wobject/Collaboration.pm b/lib/WebGUI/Asset/Wobject/Collaboration.pm index b53992401..4b724d779 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration.pm @@ -1750,5 +1750,6 @@ sub www_viewRSS { return $self->www_viewRss; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Collaboration/Newsletter.pm b/lib/WebGUI/Asset/Wobject/Collaboration/Newsletter.pm index 8d5ab9436..6bbeecb90 100644 --- a/lib/WebGUI/Asset/Wobject/Collaboration/Newsletter.pm +++ b/lib/WebGUI/Asset/Wobject/Collaboration/Newsletter.pm @@ -230,4 +230,5 @@ sub www_mySubscriptionsSave { return $self->www_view; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Dashboard.pm b/lib/WebGUI/Asset/Wobject/Dashboard.pm index 4c3f09d3c..02f6f2894 100644 --- a/lib/WebGUI/Asset/Wobject/Dashboard.pm +++ b/lib/WebGUI/Asset/Wobject/Dashboard.pm @@ -434,4 +434,5 @@ sub www_view { +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/DataForm.pm b/lib/WebGUI/Asset/Wobject/DataForm.pm index 1cde30a3b..6049abea5 100644 --- a/lib/WebGUI/Asset/Wobject/DataForm.pm +++ b/lib/WebGUI/Asset/Wobject/DataForm.pm @@ -2185,5 +2185,6 @@ sub www_process { return ''; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/DataTable.pm b/lib/WebGUI/Asset/Wobject/DataTable.pm index 9c0f570cc..adbd3e061 100644 --- a/lib/WebGUI/Asset/Wobject/DataTable.pm +++ b/lib/WebGUI/Asset/Wobject/DataTable.pm @@ -278,4 +278,5 @@ sub www_ajaxUpdateData { return $data; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm index 0457c7713..83a726f78 100644 --- a/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm +++ b/lib/WebGUI/Asset/Wobject/EventManagementSystem.pm @@ -2766,5 +2766,6 @@ sub www_viewSubmissionQueue { $self->processTemplate( $params, $self->get('eventSubmissionMainTemplateId'))); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Folder.pm b/lib/WebGUI/Asset/Wobject/Folder.pm index 575b1eefd..673a413bb 100644 --- a/lib/WebGUI/Asset/Wobject/Folder.pm +++ b/lib/WebGUI/Asset/Wobject/Folder.pm @@ -296,5 +296,6 @@ override www_view => sub { }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Gallery.pm b/lib/WebGUI/Asset/Wobject/Gallery.pm index b19322bfa..b26614832 100644 --- a/lib/WebGUI/Asset/Wobject/Gallery.pm +++ b/lib/WebGUI/Asset/Wobject/Gallery.pm @@ -1580,4 +1580,5 @@ sub www_listFilesForUserRss { return $self->processTemplate( $var, $self->templateIdListFilesForUserRss ); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm index c0ed7a479..132d92206 100644 --- a/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm +++ b/lib/WebGUI/Asset/Wobject/GalleryAlbum.pm @@ -1612,4 +1612,5 @@ sub www_viewRss { return $self->processTemplate( $var, $self->getParent->templateIdViewAlbumRss ); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/HttpProxy.pm b/lib/WebGUI/Asset/Wobject/HttpProxy.pm index 901bcef2f..803447cab 100644 --- a/lib/WebGUI/Asset/Wobject/HttpProxy.pm +++ b/lib/WebGUI/Asset/Wobject/HttpProxy.pm @@ -507,4 +507,5 @@ sub www_view { } } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/InOutBoard.pm b/lib/WebGUI/Asset/Wobject/InOutBoard.pm index 88e62ca0b..dcc168bd4 100644 --- a/lib/WebGUI/Asset/Wobject/InOutBoard.pm +++ b/lib/WebGUI/Asset/Wobject/InOutBoard.pm @@ -566,5 +566,6 @@ order by department, lastName, firstName, InOutBoard_statusLog.dateStamp"; return $self->processStyle($self->processTemplate(\%var, $self->reportTemplateId)); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index 6ee065de9..671582994 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -444,5 +444,6 @@ override www_view => sub { return super(); }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Map.pm b/lib/WebGUI/Asset/Wobject/Map.pm index a9a3fe036..d05193c6d 100644 --- a/lib/WebGUI/Asset/Wobject/Map.pm +++ b/lib/WebGUI/Asset/Wobject/Map.pm @@ -631,6 +631,7 @@ sub www_ajaxSetPointLocation { return JSON->new->encode( {message => $i18n->get("message set point location")} ); } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Wobject/Matrix.pm b/lib/WebGUI/Asset/Wobject/Matrix.pm index eaeacae0c..867ec429f 100644 --- a/lib/WebGUI/Asset/Wobject/Matrix.pm +++ b/lib/WebGUI/Asset/Wobject/Matrix.pm @@ -1447,4 +1447,5 @@ sub www_setStickied { return undef; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/MessageBoard.pm b/lib/WebGUI/Asset/Wobject/MessageBoard.pm index b2db08a68..05d8f94a4 100644 --- a/lib/WebGUI/Asset/Wobject/MessageBoard.pm +++ b/lib/WebGUI/Asset/Wobject/MessageBoard.pm @@ -172,6 +172,7 @@ override www_view => sub { super(); }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/MultiSearch.pm b/lib/WebGUI/Asset/Wobject/MultiSearch.pm index ff88000e1..b58b0e58b 100644 --- a/lib/WebGUI/Asset/Wobject/MultiSearch.pm +++ b/lib/WebGUI/Asset/Wobject/MultiSearch.pm @@ -132,4 +132,5 @@ override www_view => sub { super(); }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Navigation.pm b/lib/WebGUI/Asset/Wobject/Navigation.pm index 67308aa29..7926ef82d 100644 --- a/lib/WebGUI/Asset/Wobject/Navigation.pm +++ b/lib/WebGUI/Asset/Wobject/Navigation.pm @@ -557,5 +557,6 @@ override www_view => sub { } }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Poll.pm b/lib/WebGUI/Asset/Wobject/Poll.pm index 98b1aacc3..b56132443 100644 --- a/lib/WebGUI/Asset/Wobject/Poll.pm +++ b/lib/WebGUI/Asset/Wobject/Poll.pm @@ -557,5 +557,6 @@ sub www_vote { +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/ProjectManager.pm b/lib/WebGUI/Asset/Wobject/ProjectManager.pm index 1c7840ed1..5b3209ac9 100644 --- a/lib/WebGUI/Asset/Wobject/ProjectManager.pm +++ b/lib/WebGUI/Asset/Wobject/ProjectManager.pm @@ -1985,5 +1985,5 @@ sub www_viewProject { return $self->processStyle($self->processTemplate($var,$self->projectDisplayTemplateId)); } - +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/SQLReport.pm b/lib/WebGUI/Asset/Wobject/SQLReport.pm index 114cd3546..a7dc617cc 100644 --- a/lib/WebGUI/Asset/Wobject/SQLReport.pm +++ b/lib/WebGUI/Asset/Wobject/SQLReport.pm @@ -869,5 +869,6 @@ override www_view => sub { super(); }; +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Search.pm b/lib/WebGUI/Asset/Wobject/Search.pm index ce5329e13..33c14728b 100644 --- a/lib/WebGUI/Asset/Wobject/Search.pm +++ b/lib/WebGUI/Asset/Wobject/Search.pm @@ -208,5 +208,6 @@ sub view { return $self->processTemplate(\%var, undef, $self->{_viewTemplate}); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Shelf.pm b/lib/WebGUI/Asset/Wobject/Shelf.pm index c4bffd4e7..a46ca7ec1 100644 --- a/lib/WebGUI/Asset/Wobject/Shelf.pm +++ b/lib/WebGUI/Asset/Wobject/Shelf.pm @@ -419,4 +419,5 @@ sub www_importProducts { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/StockData.pm b/lib/WebGUI/Asset/Wobject/StockData.pm index 6a4a17031..f71b53a2d 100644 --- a/lib/WebGUI/Asset/Wobject/StockData.pm +++ b/lib/WebGUI/Asset/Wobject/StockData.pm @@ -401,4 +401,5 @@ sub www_displayStock { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/StoryArchive.pm b/lib/WebGUI/Asset/Wobject/StoryArchive.pm index fd51f84b2..8b381d3ca 100644 --- a/lib/WebGUI/Asset/Wobject/StoryArchive.pm +++ b/lib/WebGUI/Asset/Wobject/StoryArchive.pm @@ -602,5 +602,6 @@ sub www_add { $todayFolder->www_add; } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Wobject/StoryTopic.pm b/lib/WebGUI/Asset/Wobject/StoryTopic.pm index 620648c77..53aaf03cd 100644 --- a/lib/WebGUI/Asset/Wobject/StoryTopic.pm +++ b/lib/WebGUI/Asset/Wobject/StoryTopic.pm @@ -256,5 +256,6 @@ sub www_viewStory { } +__PACKAGE__->meta->make_immutable; 1; #vim:ft=perl diff --git a/lib/WebGUI/Asset/Wobject/Survey.pm b/lib/WebGUI/Asset/Wobject/Survey.pm index e6625b054..551eb0aae 100644 --- a/lib/WebGUI/Asset/Wobject/Survey.pm +++ b/lib/WebGUI/Asset/Wobject/Survey.pm @@ -3091,4 +3091,5 @@ END_SUMMARY } } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm index c8efaeb82..7517a4b52 100644 --- a/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm +++ b/lib/WebGUI/Asset/Wobject/SyndicatedContent.pm @@ -403,5 +403,6 @@ sub www_viewRSS20 { return $self->www_viewRss; } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/Thingy.pm b/lib/WebGUI/Asset/Wobject/Thingy.pm index 2ee798035..f554f28a4 100644 --- a/lib/WebGUI/Asset/Wobject/Thingy.pm +++ b/lib/WebGUI/Asset/Wobject/Thingy.pm @@ -3574,4 +3574,5 @@ sub www_viewThingDataViaAjax { } } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/TimeTracking.pm b/lib/WebGUI/Asset/Wobject/TimeTracking.pm index 7160d18c7..8882b452c 100644 --- a/lib/WebGUI/Asset/Wobject/TimeTracking.pm +++ b/lib/WebGUI/Asset/Wobject/TimeTracking.pm @@ -883,4 +883,5 @@ sub _buildRow { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/UserList.pm b/lib/WebGUI/Asset/Wobject/UserList.pm index 86c896cb1..3d155c858 100644 --- a/lib/WebGUI/Asset/Wobject/UserList.pm +++ b/lib/WebGUI/Asset/Wobject/UserList.pm @@ -618,4 +618,5 @@ sub view { } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/WeatherData.pm b/lib/WebGUI/Asset/Wobject/WeatherData.pm index 194fcace4..344f938a5 100644 --- a/lib/WebGUI/Asset/Wobject/WeatherData.pm +++ b/lib/WebGUI/Asset/Wobject/WeatherData.pm @@ -141,4 +141,5 @@ sub view { return $self->processTemplate(\%var, undef, $self->{_viewTemplate}); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Asset/Wobject/WikiMaster.pm b/lib/WebGUI/Asset/Wobject/WikiMaster.pm index 6320c18e3..746bfa27d 100644 --- a/lib/WebGUI/Asset/Wobject/WikiMaster.pm +++ b/lib/WebGUI/Asset/Wobject/WikiMaster.pm @@ -751,4 +751,5 @@ sub www_search { return $self->processStyle($self->processTemplate($var, $self->searchTemplateId)); } +__PACKAGE__->meta->make_immutable; 1; diff --git a/lib/WebGUI/Definition/Meta/Asset.pm b/lib/WebGUI/Definition/Meta/Asset.pm index 3e70971bc..1627b958c 100644 --- a/lib/WebGUI/Definition/Meta/Asset.pm +++ b/lib/WebGUI/Definition/Meta/Asset.pm @@ -76,9 +76,17 @@ Returns an array of the names of all tables in every class used by this class. =cut sub get_tables { + my $self = shift; + if ($self->is_immutable) { + return @{ $self->{__immutable}{get_tables_methods} ||= [ $self->_get_tables ] }; + } + goto &_get_tables; +} + +sub _get_tables { my $self = shift; my %seen = (); - my @tables = + my @tables = grep { ! $seen{$_}++ } map { $_->tableName } $self->get_all_properties diff --git a/lib/WebGUI/Definition/Meta/Class.pm b/lib/WebGUI/Definition/Meta/Class.pm index 98797db3f..1b2bab583 100644 --- a/lib/WebGUI/Definition/Meta/Class.pm +++ b/lib/WebGUI/Definition/Meta/Class.pm @@ -76,6 +76,14 @@ Returns an array of all attribute names across all meta classes. =cut sub get_all_attributes_list { + my $self = shift; + if ($self->is_immutable) { + return @{ $self->{__immutable}{get_all_attributes_list} ||= [ $self->_get_all_attributes_list ] }; + } + goto &_get_all_attributes_list; +} + +sub _get_all_attributes_list { my $self = shift; my @attributes = (); CLASS: foreach my $meta ($self->get_all_class_metas) {