 		 * IQualifiedKey -> getLineStyleParams() result
 		 */
 		private var map_key_style:Object;
-
+
 		public function getStyle(key:IQualifiedKey):Object
-		{
+		{
 			if (_triggerCounter != _callbackCollection.triggerCounter)
 			{
 				_triggerCounter = _callbackCollection.triggerCounter;

	import weavejs.util.JS;

	public class SolidLineStyle implements ILinkableObject
	{
		public function SolidLineStyle()
		{
			_callbackCollection = Weave.getCallbacks(this);
			weight.internalDynamicColumn.requestLocalObject(NormalizedColumn, true);
			
			normalizedWeightColumn.min.value = 1;
			normalizedWeightColumn.max.value = 5;
		}
		
		private var _callbackCollection:ICallbackCollection; // the ICallbackCollection for this object

		private var _triggerCounter:uint = 0; // used to detect change
		
		// This maps an AlwaysDefinedColumn to its preferred value type.
		private const map_column_dataType:Object = new JS.WeakMap();
		// this maps an AlwaysDefinedColumn to the default value for that column.
		// if there is an internal column in the AlwaysDefinedColumn, the default value is not stored
		private const map_column_defaultValue:Object = new JS.Map();
		
		private function createColumn(dataType:Class, defaultValue:*):AlwaysDefinedColumn
		{
			var column:AlwaysDefinedColumn = Weave.linkableChild(this, AlwaysDefinedColumn);
			map_column_dataType[column] = dataType;
			column.defaultValue.state = defaultValue;
			return column;
		}

		public const enable:LinkableBoolean = Weave.linkableChild(this, new LinkableBoolean(true));
		
		public const color:AlwaysDefinedColumn = createColumn(Number, 0x000000);
		public const weight:AlwaysDefinedColumn = createColumn(Number, 1);
		public const alpha:AlwaysDefinedColumn = createColumn(Number, 0.5);
		public const caps:AlwaysDefinedColumn = createColumn(String, null);
		public const joints:AlwaysDefinedColumn = createColumn(String, null);
		public const miterLimit:AlwaysDefinedColumn = createColumn(Number, 3);
		
		public function get normalizedWeightColumn():NormalizedColumn { return weight.getInternalColumn() as NormalizedColumn; }
		

			if (params)
				return params;
			
			var _color:* = map_column_defaultValue.get(color);
			var _weight:* = map_column_defaultValue.get(weight);
			var _alpha:* = map_column_defaultValue.get(alpha);
			var _caps:* = map_column_defaultValue.get(caps);
			var _joints:* = map_column_defaultValue.get(joints);
			var _miterLimit:* = map_column_defaultValue.get(miterLimit);
			
			var lineColor:Number = _color !== undefined ? _color : color.getValueFromKey(key, Number);
			var lineWeight:Number = _weight !== undefined ? _weight : weight.getValueFromKey(key, Number);
			var lineAlpha:Number         = _alpha        !== undefined ? _alpha        :      alpha.getValueFromKey(key, Number);
			var lineCaps:String          = _caps         !== undefined ? _caps         :       caps.getValueFromKey(key, String) as String || null;
			var lineJoints:String        = _joints       !== undefined ? _joints       :     joints.getValueFromKey(key, String) as String || null;
			var lineMiterLimit:Number    = _miterLimit   !== undefined ? _miterLimit   : miterLimit.getValueFromKey(key, Number);

			params = {
				'color': lineColor,
