Changeset 22820
- Timestamp:
- 09/09/10 10:30:05 (17 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/mnw21/pathquery_refactor/intermine/perl/lib/InterMine/Model/ClassDescriptor.pm
r22663 r22820 68 68 69 69 Usage : my $cd = new InterMine::Model::ClassDescriptor(model => $model, 70 name => "Gene", extends => ["BioEntity"]);70 name => "Gene", parents => ["BioEntity"]); 71 71 72 72 Function: create a new ClassDescriptor object 73 Args : model - the InterMine::Model that this class is a part of74 name - the class name75 extends - a list of the classes and interfaces that this classes73 Args : model - the InterMine::Model that this class is a part of 74 name - the class name 75 parents - a list of the classes and interfaces that this classes 76 76 extends 77 77 … … 103 103 ); 104 104 105 has extends => (105 has parents => ( 106 106 is => 'ro', 107 107 isa => ArrayRef[Str], … … 128 128 } 129 129 130 has parents => (131 reader => 'get_ parents',130 has ancestors => ( 131 reader => 'get_ancestors', 132 132 isa => ClassDescriptorList, 133 133 lazy => 1, … … 136 136 my $self = shift; 137 137 my @inheritance_path = ($self,); 138 my @classes = $self-> extends_class_descriptors();138 my @classes = $self->parental_class_descriptors(); 139 139 for my $class (@classes) { 140 push @inheritance_path, get_parents($class);140 push @inheritance_path, $class->get_ancestors; 141 141 } 142 142 return \@inheritance_path; … … 152 152 153 153 154 =head2 extends155 156 Usage : @parent_class_names = $cd-> extends();154 =head2 parents 155 156 Usage : @parent_class_names = $cd->parents(); 157 157 Function: return a list of the names of the classes/interfaces that this class 158 158 directly extends 159 159 Args : none 160 160 161 =head2 extends_class_descriptors162 163 Usage : @parent_cds = $cd-> extends_class_descriptors();161 =head2 parental_class_descriptors 162 163 Usage : @parent_cds = $cd->parental_class_descriptors(); 164 164 Function: return a list of the ClassDescriptor objects for the 165 165 classes/interfaces that this class directly extends … … 167 167 168 168 =cut 169 has extends_class_descriptors => ( 169 170 has parental_class_descriptors => ( 170 171 is => 'ro', 171 172 isa => ClassDescriptorList, … … 175 176 my $self = shift; 176 177 return [map {$self->model->get_classdescriptor_by_name($_)} 177 $self-> extends];178 $self->parents]; 178 179 }, 179 180 ); … … 249 250 250 251 =cut 252 251 253 sub sub_class_of 252 254 { … … 257 259 return 1; 258 260 } else { 259 for my $ extendee_class_desc ($self->extends_class_descriptors()) {260 if ($ extendee_class_desc->sub_class_of($other_class_desc)) {261 for my $parent ($self->parental_class_descriptors()) { 262 if ($parent->sub_class_of($other_class_desc)) { 261 263 return 1; 262 264 }
Note: See TracChangeset
for help on using the changeset viewer.
