Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using Gee;
- public abstract class cAbstractObject<G> : Object, Iterable<G> {
- protected string _name;
- protected ArrayList<G> _objects = new ArrayList<G>();
- public string name { get { return this._name; } set { this._name = value; } }
- public ArrayList<G> objects { get { return _objects; } }
- public int size { get { return _objects.size; } }
- public Type element_type {
- get { return typeof (G); }
- }
- public Iterator<G> iterator () {
- return _objects.iterator();
- }
- public virtual void add(G o) {
- _objects.add(o);
- }
- public new G? get (int index) {
- assert (index >= 0); assert (index < _objects.size);
- return _objects[index];
- }
- }
- public class cObject : cAbstractObject<cObject> {
- public cObject(string name) {
- this._name = name;
- }
- public new void add(cObject o) {
- stdout.printf ("adding %s\n", o.name);
- _objects.add(o);
- }
- }
- void main() {
- cObject o1 = new cObject("test1");
- o1.add(new cObject("test2"));
- cObject o2 = o1.get(0);
- stdout.printf ("++--> %s\n", o2.name);
- }
Advertisement
Add Comment
Please, Sign In to add comment