// task 2. // module module GraphicsApp { // forward declaration of shape. // because we use it in rectangle interface GraphicalObject; typedef sequence ObjectSequence; // rectangle contains shapes which GraphicalObjects a interface Rectangle { // exception to be thrown if index out of range exception IndexOutOfBounds {}; // hopping this will be an array of Graphical-objects. attribute ObjectSequence objects; // function to add object void addObject(in GraphicalObject newShape); // and may be remove an object from a position? void removeObjectAtPosition(in unsigned long index) raises (IndexOutOfBounds); }; interface Shape { // draw to be overriden in java void draw(); // and info void showInfo(); }; // GraphicalShape object extends Shape interface GraphicalObject : Shape { // unqualified member attribute boolean is_filled; // we cannot set this, so only getter will be implemented. // only time a shape can change is if it's in the matrix or if Dr.Strange is in town. readonly attribute string name; }; };