package readers.text { import mx.utils.StringUtil; public class Properties { public var values:Object; public function Properties(props:String = "") { this.properties = props; }
public function set properties(props:String):void { values = Properties.parseProperties(props,values); } public function hasProperty(name:String):Boolean { return values.hasOwnProperty(name); } public function getProperty(name:String):String { if (values.hasOwnProperty(name)) return values[name]; return null; } public function serialize():String { return Properties.serializeProperties(values); } public static function serializeProperties(values:Object):String { var serialized:String = ""; if (values == null) return serialized; for (var property:String in values) { serialized += property + "=" + String(values[property]) + "\n"; } return serialized; } public static function parseProperties(properties:String,values:Object = null):Object { if (values == null) values = {}; if (properties == null || properties == "") return values; var lines:Array = properties.split("\n"); for each (var line:String in lines) { if (line != "") { var parts:Array = line.split("="); var property:String = parts[0]; var value:String = (parts.length > 1) ? parts[1] : ""; if (property.charAt(0) != "#" && property.length > 0) values[property] = StringUtil.trim(value); } } return values; } } }