1 package net.systemeD.halcyon.connection {
3 import flash.events.EventDispatcher;
5 public class Entity extends EventDispatcher {
6 private var _id:Number;
7 private var _version:uint;
8 private var tags:Object = {};
9 private var modified:Boolean = false;
11 public function Entity(id:Number, version:uint, tags:Object) {
13 this._version = version;
18 public function get id():Number {
22 public function get version():uint {
26 public function hasTags():Boolean {
27 for (var key:String in tags)
32 public function getTag(key:String):String {
36 public function setTag(key:String, value:String):void {
37 var old:String = tags[key];
39 if ( value == null || value == "" )
44 dispatchEvent(new TagEvent(Connection.TAG_CHANGE, this, key, key, old, value));
48 public function renameTag(oldKey:String, newKey:String):void {
49 var value:String = tags[oldKey];
50 if ( oldKey != newKey ) {
54 dispatchEvent(new TagEvent(Connection.TAG_CHANGE, this, oldKey, newKey, value, value));
58 public function getTagList():TagList {
59 return new TagList(tags);
62 public function getTagsCopy():Object {
64 for (var key:String in tags )
65 copy[key] = tags[key];
69 public function getTagArray():Array {
71 for (var key:String in tags )
72 copy.push(new Tag(this, key, tags[key]));
76 public function get isDirty():Boolean {
80 public function markClean(newID:Number, newVersion:uint):void {
82 this._version = newVersion;
86 protected function markDirty():void {
90 public function getType():String {