@@ -125,6 +125,9 @@ abstract class ModelElement implements Comparable, Nameable {
125
125
}
126
126
}
127
127
128
+ /// A human-friendly name for the kind of element this is.
129
+ String get kind;
130
+
128
131
String get _computeDocumentationComment =>
129
132
element.computeDocumentationComment ();
130
133
@@ -381,6 +384,9 @@ class Dynamic extends ModelElement {
381
384
ModelElement get enclosingElement => throw new UnsupportedError ('' );
382
385
383
386
String get _href => throw new StateError ('dynamic should not have an href' );
387
+
388
+ @override
389
+ String get kind => 'dynamic' ;
384
390
}
385
391
386
392
class Package implements Nameable {
@@ -520,6 +526,9 @@ class Library extends ModelElement {
520
526
return library;
521
527
}
522
528
529
+ @override
530
+ String get kind => 'library' ;
531
+
523
532
/// Libraries are not enclosed by anything.
524
533
ModelElement get enclosingElement => null ;
525
534
@@ -830,6 +839,7 @@ class Class extends ModelElement implements EnclosedElement {
830
839
return new TypeParameter (f, lib);
831
840
}).toList ();
832
841
842
+ @override
833
843
String get kind => 'class' ;
834
844
835
845
String get fileName => "${name }-class.html" ;
@@ -1312,6 +1322,9 @@ class ModelFunction extends ModelElement
1312
1322
1313
1323
String get fileName => "$name .html" ;
1314
1324
1325
+ @override
1326
+ String get kind => 'function' ;
1327
+
1315
1328
@override
1316
1329
String get _href => '${library .dirName }/$fileName ' ;
1317
1330
}
@@ -1327,6 +1340,9 @@ class Typedef extends ModelElement implements EnclosedElement {
1327
1340
}
1328
1341
}
1329
1342
1343
+ @override
1344
+ String get kind => 'typedef' ;
1345
+
1330
1346
@override
1331
1347
ModelElement get enclosingElement => library;
1332
1348
@@ -1339,6 +1355,7 @@ class Typedef extends ModelElement implements EnclosedElement {
1339
1355
String get _href => '${library .dirName }/$fileName ' ;
1340
1356
}
1341
1357
1358
+ // TODO: rename this to property
1342
1359
class Field extends ModelElement implements EnclosedElement {
1343
1360
String _constantValue;
1344
1361
bool _isInherited = false ;
@@ -1355,6 +1372,9 @@ class Field extends ModelElement implements EnclosedElement {
1355
1372
_setModelType ();
1356
1373
}
1357
1374
1375
+ @override
1376
+ String get kind => 'property' ;
1377
+
1358
1378
@override
1359
1379
ModelElement get enclosingElement =>
1360
1380
new ModelElement .from (_field.enclosingElement, library);
@@ -1476,6 +1496,9 @@ class Constructor extends ModelElement implements EnclosedElement {
1476
1496
Constructor (ConstructorElement element, Library library)
1477
1497
: super (element, library);
1478
1498
1499
+ @override
1500
+ String get kind => 'constructor' ;
1501
+
1479
1502
@override
1480
1503
ModelElement get enclosingElement =>
1481
1504
new ModelElement .from (_constructor.enclosingElement, library);
@@ -1523,6 +1546,9 @@ class Method extends ModelElement
1523
1546
_isInherited = true ;
1524
1547
}
1525
1548
1549
+ @override
1550
+ String get kind => 'method' ;
1551
+
1526
1552
@override
1527
1553
ModelElement get enclosingElement =>
1528
1554
new ModelElement .from (_method.enclosingElement, library);
@@ -1613,6 +1639,9 @@ class Accessor extends ModelElement implements EnclosedElement {
1613
1639
Accessor (PropertyAccessorElement element, Library library)
1614
1640
: super (element, library);
1615
1641
1642
+ @override
1643
+ String get kind => 'accessor' ;
1644
+
1616
1645
@override
1617
1646
ModelElement get enclosingElement =>
1618
1647
new ModelElement .from (_accessor.enclosingElement, library);
@@ -1642,6 +1671,9 @@ class TopLevelVariable extends ModelElement implements EnclosedElement {
1642
1671
}
1643
1672
}
1644
1673
1674
+ @override
1675
+ String get kind => 'top-level property' ;
1676
+
1645
1677
@override
1646
1678
ModelElement get enclosingElement => library;
1647
1679
@@ -1690,6 +1722,9 @@ class Parameter extends ModelElement implements EnclosedElement {
1690
1722
t, new ModelElement .from (t.element, package._getLibraryFor (t.element)));
1691
1723
}
1692
1724
1725
+ @override
1726
+ String get kind => 'parameter' ;
1727
+
1693
1728
@override
1694
1729
ModelElement get enclosingElement =>
1695
1730
new ModelElement .from (_parameter.enclosingElement, library);
@@ -1740,6 +1775,9 @@ class TypeParameter extends ModelElement {
1740
1775
_modelType = new ElementType (_typeParameter.type, this );
1741
1776
}
1742
1777
1778
+ @override
1779
+ String get kind => 'type parameter' ;
1780
+
1743
1781
TypeParameterElement get _typeParameter => element as TypeParameterElement ;
1744
1782
1745
1783
String toString () => element.name;
0 commit comments