001    package org.realobject;
002    
003    import java.awt.geom.*;
004    
005    public abstract class EcoBe {
006            private Mark mark_;
007            private int id_;
008            private double width = 20;
009            private double height = 20;
010    
011            public EcoBe(int id) {
012                    id_ = id;
013            }
014            
015            public Mark getMark() {
016                    return mark_;
017            }
018            public void putMark(Mark mark) throws Exception {
019    System.out.println(toString()+".putMark("+mark+")");
020                    if(mark_ != null) throw new Exception("Mark already exists. "+toString());
021                    mark_ = mark;
022                    mark_.setEcobe(this);
023            }
024            public void removeMark() {
025                    mark_ = null;
026                    mark_.setEcobe(null);
027            }
028            public int getID() {
029                    return id_;
030            }
031            public abstract void move(double dx, double dy) ;
032            public String getNickName() {
033                    return toString();//<?>
034            }
035            public abstract double getRadius() ;
036            public abstract double getAngle() ;
037            public abstract Point2D.Double getLocation() ;
038            public String toString() {
039                    return "EcoBe[id:"+id_+","+mark_+"]";
040            }
041    }