From 9ba8e6cf38da5196ed7bc878fe452952f3e10638 Mon Sep 17 00:00:00 2001 From: Magnus Auvinen Date: Tue, 22 May 2007 15:06:55 +0000 Subject: moved docs --- .../Modules/NaturalDocs/ClassHierarchy/File.pm | 157 +++++++++++++++++++++ 1 file changed, 157 insertions(+) create mode 100644 docs/doctool/Modules/NaturalDocs/ClassHierarchy/File.pm (limited to 'docs/doctool/Modules/NaturalDocs/ClassHierarchy/File.pm') diff --git a/docs/doctool/Modules/NaturalDocs/ClassHierarchy/File.pm b/docs/doctool/Modules/NaturalDocs/ClassHierarchy/File.pm new file mode 100644 index 00000000..19d17229 --- /dev/null +++ b/docs/doctool/Modules/NaturalDocs/ClassHierarchy/File.pm @@ -0,0 +1,157 @@ +############################################################################### +# +# Class: NaturalDocs::ClassHierarchy::File +# +############################################################################### +# +# An object that stores information about what hierarchy information is present in a file. It does not store its ; it +# assumes that it will be stored in a hashref where the key is the . +# +############################################################################### + +# This file is part of Natural Docs, which is Copyright (C) 2003-2005 Greg Valure +# Natural Docs is licensed under the GPL + +use strict; +use integer; + +package NaturalDocs::ClassHierarchy::File; + + +# +# Topic: Implementation +# +# Since there's only one member in the class, and it's a hashref, the class is simply the hashref itself blessed as a class. +# The keys are the class that are defined in the file, and the values are existence hashrefs of each class' +# parent , or undef if none. +# + + +############################################################################### +# Group: Modification Functions + + +# +# Function: New +# +# Creates and returns a new class. +# +sub New + { + my ($package) = @_; + + my $object = { }; + bless $object, $package; + + return $object; + }; + +# +# Function: AddClass +# Adds a rew class to the file. +# +sub AddClass #(class) + { + my ($self, $class) = @_; + + if (!exists $self->{$class}) + { $self->{$class} = undef; }; + }; + +# +# Function: DeleteClass +# Deletes a class from the file. +# +sub DeleteClass #(class) + { + my ($self, $class) = @_; + delete $self->{$class}; + }; + +# +# Function: AddParentReference +# Adds a parent to a class . +# +sub AddParentReference #(class, parentReference) + { + my ($self, $class, $parent) = @_; + + if (!exists $self->{$class} || !defined $self->{$class}) + { $self->{$class} = { }; }; + + $self->{$class}->{$parent} = 1; + }; + +# +# Function: DeleteParentReference +# Deletes a parent from a class . +# +sub DeleteParentReference #(class, parent) + { + my ($self, $class, $parent) = @_; + + if (exists $self->{$class}) + { + delete $self->{$class}->{$parent}; + + if (!scalar keys %{$self->{$class}}) + { $self->{$class} = undef; }; + }; + }; + + + +############################################################################### +# Group: Information Functions + + +# +# Function: Classes +# Returns an array of the class that are defined by this file, or an empty array if none. +# +sub Classes + { + my ($self) = @_; + return keys %{$self}; + }; + +# +# Function: HasClass +# Returns whether the file defines the passed class . +# +sub HasClass #(class) + { + my ($self, $class) = @_; + return exists $self->{$class}; + }; + +# +# Function: ParentReferencesOf +# Returns an array of the parent that are defined by the class, or an empty array if none. +# +sub ParentReferencesOf #(class) + { + my ($self, $class) = @_; + + if (!exists $self->{$class} || !defined $self->{$class}) + { return ( ); } + else + { return keys %{$self->{$class}}; }; + }; + +# +# Function: HasParentReference +# Returns whether the file defines the passed class and parent . +# +sub HasParentReference #(class, parent) + { + my ($self, $class, $parent) = @_; + + if (!$self->HasClass($class)) + { return undef; }; + + return exists $self->{$class}->{$parent}; + }; + + +1; -- cgit 1.4.1