From 209f2c467e1a5918d932af0981049e05eca157b1 Mon Sep 17 00:00:00 2001 From: Nat Quayle Nelson Date: Thu, 10 Dec 2020 12:35:48 -0700 Subject: [PATCH] Format imported Cloner code --- src/kiss/cloner/Cloner.hx | 58 ++++++++++++++++++------------------ src/kiss/cloner/MapCloner.hx | 15 +++++----- 2 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/kiss/cloner/Cloner.hx b/src/kiss/cloner/Cloner.hx index 41ea91d..005e316 100644 --- a/src/kiss/cloner/Cloner.hx +++ b/src/kiss/cloner/Cloner.hx @@ -1,53 +1,54 @@ package kiss.cloner; + import Array; import haxe.ds.ObjectMap; import Type.ValueType; import haxe.ds.IntMap; import haxe.ds.StringMap; -class Cloner { - var cache:ObjectMap; - var classHandles:MapDynamic>; +class Cloner { + var cache:ObjectMap; + var classHandles:MapDynamic>; var stringMapCloner:MapCloner; var intMapCloner:MapCloner; public function new():Void { - stringMapCloner = new MapCloner(this,StringMap); - intMapCloner = new MapCloner(this,IntMap); - classHandles = new MapDynamic>(); - classHandles.set('String',returnString); - classHandles.set('Array',cloneArray); - classHandles.set('haxe.ds.StringMap',stringMapCloner.clone); - classHandles.set('haxe.ds.IntMap',intMapCloner.clone); + stringMapCloner = new MapCloner(this, StringMap); + intMapCloner = new MapCloner(this, IntMap); + classHandles = new MapDynamic>(); + classHandles.set('String', returnString); + classHandles.set('Array', cloneArray); + classHandles.set('haxe.ds.StringMap', stringMapCloner.clone); + classHandles.set('haxe.ds.IntMap', intMapCloner.clone); } function returnString(v:String):String { return v; } - public function clone (v:T):T { - cache = new ObjectMap(); + public function clone(v:T):T { + cache = new ObjectMap(); var outcome:T = _clone(v); cache = null; return outcome; } - public function _clone (v:T):T { + public function _clone(v:T):T { #if js - if(Std.is(v, String)) + if (Std.is(v, String)) return v; #end - + #if neko try { - if(Type.getClassName(cast v) != null) - return v; - }catch(e:Dynamic) {} + if (Type.getClassName(cast v) != null) + return v; + } catch (e:Dynamic) {} #else - if(Type.getClassName(cast v) != null) + if (Type.getClassName(cast v) != null) return v; #end - switch(Type.typeof(v)){ + switch (Type.typeof(v)) { case TNull: return null; case TInt: @@ -61,8 +62,8 @@ class Cloner { case TFunction: return v; case TClass(c): - if(!cache.exists(v)) - cache.set(v,handleClass(c, v)); + if (!cache.exists(v)) + cache.set(v, handleClass(c, v)); return cache.get(v); case TEnum(e): return v; @@ -71,7 +72,7 @@ class Cloner { } } - function handleAnonymous (v:Dynamic):Dynamic { + function handleAnonymous(v:Dynamic):Dynamic { var properties:Array = Reflect.fields(v); var anonymous:Dynamic = {}; for (i in 0...properties.length) { @@ -81,21 +82,21 @@ class Cloner { return anonymous; } - function handleClass (c:Class,inValue:T):T { + function handleClass(c:Class, inValue:T):T { var handle:T->T = classHandles.get(Type.getClassName(c)); - if(handle == null) + if (handle == null) handle = cloneClass; return handle(inValue); } - function cloneArray (inValue:Array):Array { + function cloneArray(inValue:Array):Array { var array:Array = inValue.copy(); for (i in 0...array.length) array[i] = _clone(array[i]); return array; } - function cloneClass (inValue:T):T { + function cloneClass(inValue:T):T { var classValue = Type.getClass(inValue); var outValue:T = Type.createEmptyInstance(classValue); var fields:Array = Type.getInstanceFields(classValue); @@ -111,5 +112,4 @@ class Cloner { } return outValue; } - -} \ No newline at end of file +} diff --git a/src/kiss/cloner/MapCloner.hx b/src/kiss/cloner/MapCloner.hx index 59ced48..0721319 100644 --- a/src/kiss/cloner/MapCloner.hx +++ b/src/kiss/cloner/MapCloner.hx @@ -1,25 +1,26 @@ package kiss.cloner; + import haxe.Constraints.IMap; import kiss.cloner.Cloner; import Type.ValueType; -class MapCloner{ +class MapCloner { var cloner:Cloner; - var type:Class>; + var type:Class>; var noArgs:Array; - public function new(cloner:Cloner, type:Class>):Void { + public function new(cloner:Cloner, type:Class>):Void { this.cloner = cloner; this.type = type; noArgs = []; } - public function clone (inValue:IMap):IMap { - var inMap:IMap = inValue; - var map:IMap = cast Type.createInstance(type, noArgs); + public function clone(inValue:IMap):IMap { + var inMap:IMap = inValue; + var map:IMap = cast Type.createInstance(type, noArgs); for (key in inMap.keys()) { map.set(key, cloner._clone(inMap.get(key))); } return map; } -} \ No newline at end of file +}