Comparing version 0.3.4 to 0.3.5
@@ -1,1 +0,1 @@ | ||
{"lib/query/interfaces/ICondition.js":{"path":"lib/query/interfaces/ICondition.js","exports":["ICondition"],"requires":["Interface"],"autoload":false},"lib/data/Collections.js":{"path":"lib/data/Collections.js","exports":["Collections"],"requires":["Map","Obj","Set","Exception","Class","Queue","Collection","List","MultiListMap"],"autoload":false},"lib/command/CommandBatch.js":{"path":"lib/command/CommandBatch.js","exports":["CommandBatch"],"requires":["Bug","Obj","ArgUtil","Class","List"],"autoload":false},"lib/command/Command.js":{"path":"lib/command/Command.js","exports":["Command"],"requires":["Bug","Obj","Class"],"autoload":false},"lib/flow/flows/ForEachSeries.js":{"path":"lib/flow/flows/ForEachSeries.js","exports":["ForEachSeries"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator"],"autoload":false},"lib/event/adapters/NodeJsEvent.js":{"path":"lib/event/adapters/NodeJsEvent.js","exports":["NodeJsEvent"],"requires":["Class","Event"],"autoload":false},"lib/publisher/PublisherMessage.js":{"path":"lib/publisher/PublisherMessage.js","exports":["PublisherMessage"],"requires":["Obj","Class"],"autoload":false},"lib/promise/Handler.js":{"path":"lib/promise/Handler.js","exports":["Handler"],"requires":["Bug","Obj","Class","TypeUtil"],"autoload":false},"lib/stream/suppliers/ArraySupplier.js":{"path":"lib/stream/suppliers/ArraySupplier.js","exports":["ArraySupplier"],"requires":["Supplier","Class"],"autoload":false},"lib/core/interfaces/IKeyValueIterable.js":{"path":"lib/core/interfaces/IKeyValueIterable.js","exports":["IKeyValueIterable"],"requires":["IIterable","Interface"],"autoload":false},"lib/core/Obj.js":{"path":"lib/core/Obj.js","exports":["Obj"],"requires":["Class","IdGenerator","ObjectUtil","HashUtil","IClone","IEquals","IHashCode","TypeUtil"],"autoload":false},"lib/data/Url.js":{"path":"lib/data/Url.js","exports":["Url"],"requires":["Map","Obj","Class","ObjectUtil","TypeUtil"],"autoload":false},"lib/throwable/MappedParallelException.js":{"path":"lib/throwable/MappedParallelException.js","exports":["MappedParallelException"],"requires":["Map","ParallelException","StackTraceUtil","Class"],"autoload":false},"lib/flow/Flows.js":{"path":"lib/flow/Flows.js","exports":["Flows"],"requires":["Obj","ForEachParallelBuilder","ForEachSeriesBuilder","ParallelBuilder","Class","WhileParallelBuilder","FlowBuilder","ForInParallelBuilder","ForInSeriesBuilder","IfBuilder","IterableParallelBuilder","IterableSeriesBuilder","SeriesBuilder","TaskBuilder","WhileSeriesBuilder"],"autoload":false},"lib/change/Change.js":{"path":"lib/change/Change.js","exports":["Change"],"requires":["Obj","Class"],"autoload":false},"lib/concurrent/Lock.js":{"path":"lib/concurrent/Lock.js","exports":["Lock"],"requires":["EventDispatcher","Class","Event","Queue"],"autoload":false},"lib/data/interfaces/ICollection.js":{"path":"lib/data/interfaces/ICollection.js","exports":["ICollection"],"requires":["Interface"],"autoload":false},"lib/concurrent/Semaphore.js":{"path":"lib/concurrent/Semaphore.js","exports":["Semaphore"],"requires":["Obj","Class","Queue"],"autoload":false},"lib/util/Config.js":{"path":"lib/util/Config.js","exports":["Config"],"requires":["Obj","IObjectable","IJsonable","Class","Properties"],"autoload":false},"lib/observable/Observation.js":{"path":"lib/observable/Observation.js","exports":["Observation"],"requires":["Obj","Class"],"autoload":false},"lib/observable/Observable.js":{"path":"lib/observable/Observable.js","exports":["Observable"],"requires":["Set","ObservationPropagator","Class","Observation","ArgumentBug","IObservable","MultiListMap","Observer","TypeUtil"],"autoload":false},"lib/data/Map.js":{"path":"lib/data/Map.js","exports":["Map"],"requires":["Obj","HashTable","IObjectable","Class","ObjectUtil","Collection","IKeyValueIterable","IMap","TypeUtil"],"autoload":false},"lib/match/ObjectPathMatcher.js":{"path":"lib/match/ObjectPathMatcher.js","exports":["ObjectPathMatcher"],"requires":["Obj","Class"],"autoload":false},"lib/event/adapters/NodeJsEventEmitterAdapter.js":{"path":"lib/event/adapters/NodeJsEventEmitterAdapter.js","exports":["NodeJsEventEmitterAdapter"],"requires":["Obj","NodeJsEvent","EventDispatcher","ArgUtil","Class","IEventDispatcher","IEventPropagator","IEventReceiver"],"autoload":false},"lib/util/WeightedRandomizer.js":{"path":"lib/util/WeightedRandomizer.js","exports":["WeightedRandomizer"],"requires":["Obj","WeightedList","HashTable","RandomUtil","Class","Collection"],"autoload":false},"lib/data/DualMultiMap.js":{"path":"lib/data/DualMultiMap.js","exports":["DualMultiMap"],"requires":["DualMap","Class","Collection","TypeUtil"],"autoload":false},"lib/data/interfaces/IMultiMap.js":{"path":"lib/data/interfaces/IMultiMap.js","exports":["IMultiMap"],"requires":["Interface","IMap"],"autoload":false},"lib/flow/builders/TaskBuilder.js":{"path":"lib/flow/builders/TaskBuilder.js","exports":["TaskBuilder"],"requires":["Throwables","Class","FlowBuilder","Task","TypeUtil"],"autoload":false},"lib/flow/flows/ForInParallel.js":{"path":"lib/flow/flows/ForInParallel.js","exports":["ForInParallel"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator","MappedParallelException"],"autoload":false},"lib/util/StringUtil.js":{"path":"lib/util/StringUtil.js","exports":["StringUtil"],"requires":["TypeUtil"],"autoload":false},"lib/change/ClearChange.js":{"path":"lib/change/ClearChange.js","exports":["ClearChange"],"requires":["Class","Change"],"autoload":false},"lib/concurrent/LockStriped.js":{"path":"lib/concurrent/LockStriped.js","exports":["LockStriped"],"requires":["Obj","Striped","Class","Lock"],"autoload":false},"lib/util/IdGenerator.js":{"path":"lib/util/IdGenerator.js","exports":["IdGenerator"],"requires":[],"autoload":false},"lib/util/TypeUtil.js":{"path":"lib/util/TypeUtil.js","exports":["TypeUtil"],"requires":[],"autoload":false},"lib/data/Queue.js":{"path":"lib/data/Queue.js","exports":["Queue"],"requires":["Obj","Exception","Class","Collection"],"autoload":false},"lib/data/interfaces/ISet.js":{"path":"lib/data/interfaces/ISet.js","exports":["ISet"],"requires":["Interface","ICollection"],"autoload":false},"lib/flow/flows/Assertion.js":{"path":"lib/flow/flows/Assertion.js","exports":["Assertion"],"requires":["Throwables","Class","Flow","TypeUtil"],"autoload":false},"lib/core/Class.js":{"path":"lib/core/Class.js","exports":["Class"],"requires":["Constructor","TypeUtil"],"autoload":false},"lib/data/Set.js":{"path":"lib/data/Set.js","exports":["Set"],"requires":["Obj","Class","Collection","ISet"],"autoload":false},"lib/event/query/EventQueryBuilder.js":{"path":"lib/event/query/EventQueryBuilder.js","exports":["EventQueryBuilder"],"requires":["Obj","EventQuery","QueryBuilder","EventQueryListener","Class"],"autoload":false},"lib/util/DateUtil.js":{"path":"lib/util/DateUtil.js","exports":["DateUtil"],"requires":["Obj","Class","StringUtil"],"autoload":false},"lib/promise/interfaces/IPromise.js":{"path":"lib/promise/interfaces/IPromise.js","exports":["IPromise"],"requires":["Interface"],"autoload":false},"lib/throwable/Throwables.js":{"path":"lib/throwable/Throwables.js","exports":["Throwables"],"requires":["Bug","Obj","ParallelException","Exception","Class","ArgumentBug"],"autoload":false},"lib/core/polyfill/Function.js":{"path":"lib/core/polyfill/Function.js","exports":["Function"],"requires":[],"autoload":false},"lib/throwable/MappedThrowable.js":{"path":"lib/throwable/MappedThrowable.js","exports":["MappedThrowable"],"requires":["Map","Class","Throwable"],"autoload":false},"lib/flow/flows/Series.js":{"path":"lib/flow/flows/Series.js","exports":["Series"],"requires":["Class","Flow"],"autoload":false},"lib/data/interfaces/IMap.js":{"path":"lib/data/interfaces/IMap.js","exports":["IMap"],"requires":["Interface"],"autoload":false},"lib/change/RemoveAtChange.js":{"path":"lib/change/RemoveAtChange.js","exports":["RemoveAtChange"],"requires":["Obj","Class","RemoveChange"],"autoload":false},"lib/throwable/ArgumentBug.js":{"path":"lib/throwable/ArgumentBug.js","exports":["ArgumentBug"],"requires":["Bug","StackTraceUtil","Class"],"autoload":false},"lib/util/PropertiesChain.js":{"path":"lib/util/PropertiesChain.js","exports":["PropertiesChain"],"requires":["Obj","Exception","Class","List","TypeUtil"],"autoload":false},"lib/core/Interface.js":{"path":"lib/core/Interface.js","exports":["Interface"],"requires":["Implementable","TypeUtil"],"autoload":false},"lib/core/polyfill/Notifier.js":{"path":"lib/core/polyfill/Notifier.js","exports":["Notifier"],"requires":[],"autoload":false},"lib/data/Graph.js":{"path":"lib/data/Graph.js","exports":["Graph"],"requires":["Map","Obj","Set","Exception","Class","GraphEdge","GraphNode"],"autoload":false},"lib/promise/Promises.js":{"path":"lib/promise/Promises.js","exports":["Promises"],"requires":["Obj","Class","Promise","Deferred","IPromise","TypeUtil"],"autoload":false},"lib/stream/suppliers/MethodSupplier.js":{"path":"lib/stream/suppliers/MethodSupplier.js","exports":["MethodSupplier"],"requires":["Supplier","Class"],"autoload":false},"scripts/bugcore-node.js":{"path":"scripts/bugcore-node.js","exports":[],"requires":[],"autoload":false},"lib/flow/flows/Task.js":{"path":"lib/flow/flows/Task.js","exports":["Task"],"requires":["Class","Flow"],"autoload":false},"lib/stream/interfaces/IStreamable.js":{"path":"lib/stream/interfaces/IStreamable.js","exports":["IStreamable"],"requires":["Interface"],"autoload":false},"lib/flow/flows/IterableParallel.js":{"path":"lib/flow/flows/IterableParallel.js","exports":["IterableParallel"],"requires":["IIterable","IterableFlow","Class","MappedParallelException"],"autoload":false},"lib/flow/builders/ForInSeriesBuilder.js":{"path":"lib/flow/builders/ForInSeriesBuilder.js","exports":["ForInSeriesBuilder"],"requires":["Class","ForInSeries","IterableFlowBuilder"],"autoload":false},"lib/data/TreeNode.js":{"path":"lib/data/TreeNode.js","exports":["TreeNode"],"requires":["Obj","Class","List"],"autoload":false},"lib/core/Arr.js":{"path":"lib/core/Arr.js","exports":["Arr"],"requires":["Suppliers","Obj","Exception","ArrayIterator","Class","ICollection","IIndexValueIterable","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/observable/interfaces/IObservationPropagator.js":{"path":"lib/observable/interfaces/IObservationPropagator.js","exports":["IObservationPropagator"],"requires":["Interface"],"autoload":false},"lib/promise/Deferred.js":{"path":"lib/promise/Deferred.js","exports":["Deferred"],"requires":["Obj","ArgUtil","Class","Promise"],"autoload":false},"lib/concurrent/RateLimiter.js":{"path":"lib/concurrent/RateLimiter.js","exports":["RateLimiter"],"requires":["Obj","Class","Queue","Func"],"autoload":false},"lib/query/QueryBuilder.js":{"path":"lib/query/QueryBuilder.js","exports":["QueryBuilder"],"requires":["Obj","Set","Class","Query","WhereConditionBuilder"],"autoload":false},"lib/util/ArrayUtil.js":{"path":"lib/util/ArrayUtil.js","exports":["ArrayUtil"],"requires":["TypeUtil"],"autoload":false},"lib/change/PutChange.js":{"path":"lib/change/PutChange.js","exports":["PutChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/publisher/PublisherSubscription.js":{"path":"lib/publisher/PublisherSubscription.js","exports":["PublisherSubscription"],"requires":["Obj","Class","HashUtil"],"autoload":false},"lib/util/Properties.js":{"path":"lib/util/Properties.js","exports":["Properties"],"requires":["Obj","Class","ObjectUtil","TypeUtil"],"autoload":false},"lib/core/Implementable.js":{"path":"lib/core/Implementable.js","exports":["Implementable"],"requires":[],"autoload":false},"lib/core/polyfill/Array.js":{"path":"lib/core/polyfill/Array.js","exports":["Array"],"requires":["Notifier"],"autoload":false},"lib/event/EventReceiver.js":{"path":"lib/event/EventReceiver.js","exports":["EventReceiver"],"requires":["EventQueryBuilder","EventListener","EventPropagator","Class","IEventReceiver","MultiListMap","TypeUtil"],"autoload":false},"lib/proxy/Proxy.js":{"path":"lib/proxy/Proxy.js","exports":["Proxy"],"requires":["Obj","ProxyProperty","Exception","Class","IProxy","ProxyMethod","ProxyObject","TypeUtil"],"autoload":false},"lib/data/Pair.js":{"path":"lib/data/Pair.js","exports":["Pair"],"requires":["Obj","IObjectable","Exception","Class","IArrayable","TypeUtil"],"autoload":false},"lib/data/MultiListMap.js":{"path":"lib/data/MultiListMap.js","exports":["MultiListMap"],"requires":["Class","List","MultiMap"],"autoload":false},"lib/query/WhereCondition.js":{"path":"lib/query/WhereCondition.js","exports":["WhereCondition"],"requires":["Obj","Set","Class","ObjectUtil","ICondition"],"autoload":false},"lib/util/HtmlUtil.js":{"path":"lib/util/HtmlUtil.js","exports":["HtmlUtil"],"requires":["Obj","Url","ArgUtil","Class"],"autoload":false},"lib/event/EventPropagator.js":{"path":"lib/event/EventPropagator.js","exports":["EventPropagator"],"requires":["Obj","Class","IEventPropagator","List"],"autoload":false},"lib/util/HashUtil.js":{"path":"lib/util/HashUtil.js","exports":["HashUtil"],"requires":["IdGenerator","TypeUtil"],"autoload":false},"lib/publisher/Publisher.js":{"path":"lib/publisher/Publisher.js","exports":["Publisher"],"requires":["Map","Obj","PublisherSubscription","Class","List","PublisherMessage"],"autoload":false},"lib/event/EventDispatcher.js":{"path":"lib/event/EventDispatcher.js","exports":["EventDispatcher"],"requires":["Class","EventReceiver","IEventDispatcher"],"autoload":false},"lib/core/interfaces/IIterator.js":{"path":"lib/core/interfaces/IIterator.js","exports":["IIterator"],"requires":["Interface"],"autoload":false},"lib/data/interfaces/IList.js":{"path":"lib/data/interfaces/IList.js","exports":["IList"],"requires":["Interface","ICollection"],"autoload":false},"lib/data/Tree.js":{"path":"lib/data/Tree.js","exports":["Tree"],"requires":["Obj","Class"],"autoload":false},"lib/promise/handlers/ThenHandler.js":{"path":"lib/promise/handlers/ThenHandler.js","exports":["ThenHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/change/RemoveChange.js":{"path":"lib/change/RemoveChange.js","exports":["RemoveChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/throwable/Bug.js":{"path":"lib/throwable/Bug.js","exports":["Bug"],"requires":["Class","Throwable"],"autoload":false},"lib/util/StackTraceUtil.js":{"path":"lib/util/StackTraceUtil.js","exports":["StackTraceUtil"],"requires":["Obj","Class","StringUtil"],"autoload":false},"lib/core/interfaces/IArrayable.js":{"path":"lib/core/interfaces/IArrayable.js","exports":["IArrayable"],"requires":["Interface"],"autoload":false},"lib/throwable/Throwable.js":{"path":"lib/throwable/Throwable.js","exports":["Throwable"],"requires":["Obj","IObjectable","StackTraceUtil","Class","TypeUtil"],"autoload":false},"lib/data/GraphNode.js":{"path":"lib/data/GraphNode.js","exports":["GraphNode"],"requires":["Obj","Class"],"autoload":false},"lib/stream/consumers/CollectConsumer.js":{"path":"lib/stream/consumers/CollectConsumer.js","exports":["CollectConsumer"],"requires":["Throwables","Class","Consumer","ICollection"],"autoload":false},"lib/stream/Streams.js":{"path":"lib/stream/Streams.js","exports":["Streams"],"requires":["Arr","Obj","Exception","Class","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/data/Document.js":{"path":"lib/data/Document.js","exports":["Document"],"requires":["Bug","Obj","IDocument","IObjectable","ArgUtil","Class","IList","IClone","IMap","ISet","TypeUtil"],"autoload":false},"lib/flow/builders/IfBuilder.js":{"path":"lib/flow/builders/IfBuilder.js","exports":["IfBuilder"],"requires":["If","Throwables","Class","FlowBuilder","List","TaskBuilder","TypeUtil"],"autoload":false},"lib/query/interfaces/IConditionBuilder.js":{"path":"lib/query/interfaces/IConditionBuilder.js","exports":["IConditionBuilder"],"requires":["Interface"],"autoload":false},"lib/core/interfaces/IEquals.js":{"path":"lib/core/interfaces/IEquals.js","exports":["IEquals"],"requires":["Interface"],"autoload":false},"lib/event/interfaces/IEventReceiver.js":{"path":"lib/event/interfaces/IEventReceiver.js","exports":["IEventReceiver"],"requires":["Interface"],"autoload":false},"lib/stream/operations/MapOperation.js":{"path":"lib/stream/operations/MapOperation.js","exports":["MapOperation"],"requires":["Obj","Class","IStreamOperation"],"autoload":false},"lib/observable/data/ObservableArray.js":{"path":"lib/observable/data/ObservableArray.js","exports":[],"requires":[],"autoload":false},"lib/core/interfaces/IClone.js":{"path":"lib/core/interfaces/IClone.js","exports":["IClone"],"requires":["Interface"],"autoload":false},"lib/util/ObjectUtil.js":{"path":"lib/util/ObjectUtil.js","exports":["ObjectUtil"],"requires":["FunctionUtil","Object","Reflect","TypeUtil"],"autoload":false},"lib/core/iterators/ObjectIterator.js":{"path":"lib/core/iterators/ObjectIterator.js","exports":["ObjectIterator"],"requires":["Obj","Exception","Class","ObjectUtil","IKeyValueIterator","Object","TypeUtil"],"autoload":false},"lib/change/RemovePropertyChange.js":{"path":"lib/change/RemovePropertyChange.js","exports":["RemovePropertyChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/throwable/Exception.js":{"path":"lib/throwable/Exception.js","exports":["Exception"],"requires":["Class","Throwable"],"autoload":false},"lib/util/UuidGenerator.js":{"path":"lib/util/UuidGenerator.js","exports":["UuidGenerator"],"requires":["Obj","RandomUtil","Class"],"autoload":false},"lib/core/interfaces/IHashCode.js":{"path":"lib/core/interfaces/IHashCode.js","exports":["IHashCode"],"requires":["Interface"],"autoload":false},"lib/validator/ValidationMachine.js":{"path":"lib/validator/ValidationMachine.js","exports":["ValidationMachine"],"requires":["Obj","Class","Collections","Validator","ValidatorGroup","ValidatorProcessor"],"autoload":false},"lib/event/query/EventQueyListener.js":{"path":"lib/event/query/EventQueyListener.js","exports":["EventQueryListener"],"requires":["EventListener","Class"],"autoload":false},"lib/data/HashStoreNode.js":{"path":"lib/data/HashStoreNode.js","exports":["HashStoreNode"],"requires":["Obj","Class"],"autoload":false},"lib/observable/data/ObservableCollection.js":{"path":"lib/observable/data/ObservableCollection.js","exports":["ObservableCollection"],"requires":["Obj","IIterable","Observable","Class","Proxy","AddChange","ArgumentBug","ClearChange","Collection","IArrayable","ICollection","RemoveChange","TypeUtil"],"autoload":false},"lib/promise/handlers/CallbackHandler.js":{"path":"lib/promise/handlers/CallbackHandler.js","exports":["CallbackHandler"],"requires":["ParallelException","Exception","Class","Handler","TypeUtil"],"autoload":false},"lib/data/MultiSetMap.js":{"path":"lib/data/MultiSetMap.js","exports":["MultiSetMap"],"requires":["Set","Class","MultiMap"],"autoload":false},"lib/util/FunctionUtil.js":{"path":"lib/util/FunctionUtil.js","exports":["FunctionUtil"],"requires":["TypeUtil"],"autoload":false},"lib/trace/Trace.js":{"path":"lib/trace/Trace.js","exports":["Trace"],"requires":["Obj","Class"],"autoload":false},"lib/core/iterators/ArrayIterator.js":{"path":"lib/core/iterators/ArrayIterator.js","exports":["ArrayIterator"],"requires":["Obj","Exception","Array","Class","IIndexValueIterator","TypeUtil"],"autoload":false},"lib/util/LiteralUtil.js":{"path":"lib/util/LiteralUtil.js","exports":["LiteralUtil"],"requires":["Obj","IObjectable","Class","ObjectUtil","IArrayable","TypeUtil"],"autoload":false},"lib/util/MathUtil.js":{"path":"lib/util/MathUtil.js","exports":["MathUtil"],"requires":["Obj","Class"],"autoload":false},"lib/concurrent/LockMap.js":{"path":"lib/concurrent/LockMap.js","exports":["LockMap"],"requires":["Map","Obj","Class","ArgumentBug","Lock"],"autoload":false},"lib/data/GraphEdge.js":{"path":"lib/data/GraphEdge.js","exports":["GraphEdge"],"requires":["Obj","Class","GraphNode"],"autoload":false},"lib/core/interfaces/IIndexValueIterator.js":{"path":"lib/core/interfaces/IIndexValueIterator.js","exports":["IIndexValueIterator"],"requires":["IIterator","Interface"],"autoload":false},"lib/core/Func.js":{"path":"lib/core/Func.js","exports":["Func"],"requires":["Obj","Class","TypeUtil"],"autoload":false},"lib/command/CommandProcessor.js":{"path":"lib/command/CommandProcessor.js","exports":["CommandProcessor"],"requires":["Obj","Class","IList","Queue","CommandBatch","ArgumentBug","Command","TypeUtil"],"autoload":false},"lib/change/AddChange.js":{"path":"lib/change/AddChange.js","exports":["AddChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/data/WeightedList.js":{"path":"lib/data/WeightedList.js","exports":["WeightedList"],"requires":["Obj","WeightedListNode","Class","Collection","List","TypeUtil"],"autoload":false},"lib/stream/Consumer.js":{"path":"lib/stream/Consumer.js","exports":["Consumer"],"requires":["Bug","Obj","Throwables","Supplier","Class","ISupplier","IConsumer"],"autoload":false},"lib/flow/flows/IterableFlow.js":{"path":"lib/flow/flows/IterableFlow.js","exports":["IterableFlow"],"requires":["IIterable","Throwables","ArgUtil","ArrayIterator","Class","Flow","Iteration","ObjectIterator","TypeUtil"],"autoload":false},"lib/change/AddAtChange.js":{"path":"lib/change/AddAtChange.js","exports":["AddAtChange"],"requires":["Obj","Class","AddChange"],"autoload":false},"lib/stream/Supplier.js":{"path":"lib/stream/Supplier.js","exports":["Supplier"],"requires":["Bug","Obj","Exception","Class","ISupplier","IConsumer"],"autoload":false},"package.json":{"path":"package.json","exports":[],"requires":[],"autoload":false},"lib/flow/builders/ForEachParallelBuilder.js":{"path":"lib/flow/builders/ForEachParallelBuilder.js","exports":["ForEachParallelBuilder"],"requires":["ForEachParallel","Class","IterableFlowBuilder"],"autoload":false},"lib/util/RandomUtil.js":{"path":"lib/util/RandomUtil.js","exports":["RandomUtil"],"requires":["Obj","Class"],"autoload":false},"lib/BugCore.js":{"path":"lib/BugCore.js","exports":["BugCore"],"requires":["Suppliers","Constructor","Bug","Map","Obj","Set","Implementable","HashStore","HashTable","ProxyProperty","Striped","IIterable","IIterator","Interface","IObjectable","DateUtil","EventDispatcher","Exception","EventPropagator","ArgUtil","Class","Event","Flows","IList","Proxy","Queue","IdGenerator","Stack","ObjectUtil","ArrayUtil","Collection","Collections","EventReceiver","Func","HashUtil","IArrayable","IClone","ICollection","IEquals","IHashCode","IMap","IProxy","ISet","List","Lock","MathUtil","Pair","ProxyMethod","ProxyObject","RateLimiter","Semaphore","Stream","StringUtil","Throwable","TypeUtil"],"autoload":false},"lib/flow/flows/ForInSeries.js":{"path":"lib/flow/flows/ForInSeries.js","exports":["ForInSeries"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator"],"autoload":false},"lib/proxy/ProxyObject.js":{"path":"lib/proxy/ProxyObject.js","exports":["ProxyObject"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/util/ArgUtil.js":{"path":"lib/util/ArgUtil.js","exports":["ArgUtil"],"requires":["Bug","Obj","Class","ObjectUtil","ArgumentBug","TypeUtil"],"autoload":false},"lib/validator/ValidatorProcessor.js":{"path":"lib/validator/ValidatorProcessor.js","exports":["ValidatorProcessor"],"requires":["Obj","Exception","Class","Flows","Collections"],"autoload":false},"lib/core/interfaces/IJsonable.js":{"path":"lib/core/interfaces/IJsonable.js","exports":["IJsonable"],"requires":["Interface"],"autoload":false},"lib/data/DependencyGraph.js":{"path":"lib/data/DependencyGraph.js","exports":["DependencyGraph"],"requires":["Map","Obj","Set","Class","Graph","GraphEdge","GraphNode","List"],"autoload":false},"lib/data/MultiMap.js":{"path":"lib/data/MultiMap.js","exports":["MultiMap"],"requires":["Map","Class","Collection","IMap","IMultiMap"],"autoload":false},"lib/data/iterators/HashStoreIterator.js":{"path":"lib/data/iterators/HashStoreIterator.js","exports":["HashStoreIterator"],"requires":["Obj","IIterator","Exception","ArrayIterator","Class","ObjectIterator"],"autoload":false},"lib/flow/builders/ForEachSeriesBuilder.js":{"path":"lib/flow/builders/ForEachSeriesBuilder.js","exports":["ForEachSeriesBuilder"],"requires":["ForEachSeries","Class","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/Flow.js":{"path":"lib/flow/flows/Flow.js","exports":["Flow"],"requires":["Obj","Throwables","ArgUtil","Class","Resolver","Tracer","TypeUtil"],"autoload":false},"lib/observable/ObservationPropagator.js":{"path":"lib/observable/ObservationPropagator.js","exports":["ObservationPropagator"],"requires":["Obj","IObservationPropagator","Class","List"],"autoload":false},"lib/promise/handlers/CatchHandler.js":{"path":"lib/promise/handlers/CatchHandler.js","exports":["CatchHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/state/StateMachine.js":{"path":"lib/state/StateMachine.js","exports":["StateMachine"],"requires":["Set","StateEvent","EventDispatcher","Exception","Class"],"autoload":false},"lib/stream/operations/FilterOperation.js":{"path":"lib/stream/operations/FilterOperation.js","exports":["FilterOperation"],"requires":["Obj","Class","IStreamOperation"],"autoload":false},"lib/core/Constructor.js":{"path":"lib/core/Constructor.js","exports":["Constructor"],"requires":[],"autoload":false},"lib/core/interfaces/IKeyValueIterator.js":{"path":"lib/core/interfaces/IKeyValueIterator.js","exports":["IKeyValueIterator"],"requires":["IIterator","Interface"],"autoload":false},"lib/data/DualMap.js":{"path":"lib/data/DualMap.js","exports":["DualMap"],"requires":["Map","Obj","HashTable","Class","Collection","TypeUtil"],"autoload":false},"lib/data/ReferenceGraph.js":{"path":"lib/data/ReferenceGraph.js","exports":["ReferenceGraph"],"requires":["Map","Obj","Set","Class","Graph","GraphEdge","GraphNode","List"],"autoload":false},"lib/data/iterators/HashTableIterator.js":{"path":"lib/data/iterators/HashTableIterator.js","exports":["HashTableIterator"],"requires":["Obj","Exception","ArrayIterator","Class","IKeyValueIterator","ObjectIterator"],"autoload":false},"lib/flow/builders/ForInParallelBuilder.js":{"path":"lib/flow/builders/ForInParallelBuilder.js","exports":["ForInParallelBuilder"],"requires":["Class","ForInParallel","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/ForEachParallel.js":{"path":"lib/flow/flows/ForEachParallel.js","exports":["ForEachParallel"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator","MappedParallelException"],"autoload":false},"lib/observable/Observer.js":{"path":"lib/observable/Observer.js","exports":["Observer"],"requires":["Obj","Class","ArgumentBug","ObjectPathMatcher","TypeUtil"],"autoload":false},"lib/promise/handlers/FinallyHandler.js":{"path":"lib/promise/handlers/FinallyHandler.js","exports":["FinallyHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/state/events/StateEvent.js":{"path":"lib/state/events/StateEvent.js","exports":["StateEvent"],"requires":["Class","Event"],"autoload":false},"lib/stream/suppliers/IterableSupllier.js":{"path":"lib/stream/suppliers/IterableSupllier.js","exports":["IterableSupplier"],"requires":["Supplier","Class"],"autoload":false},"lib/data/Striped.js":{"path":"lib/data/Striped.js","exports":["Striped"],"requires":["Map","Obj","Class","List","TypeUtil"],"autoload":false},"lib/event/EventListener.js":{"path":"lib/event/EventListener.js","exports":["EventListener"],"requires":["Obj","Class"],"autoload":false},"lib/flow/builders/IterableParallelBuilder.js":{"path":"lib/flow/builders/IterableParallelBuilder.js","exports":["IterableParallelBuilder"],"requires":["IterableParallel","Class","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/IterableSeries.js":{"path":"lib/flow/flows/IterableSeries.js","exports":["IterableSeries"],"requires":["IterableFlow","Class"],"autoload":false},"lib/observable/data/ObservableObject.js":{"path":"lib/observable/data/ObservableObject.js","exports":["ObservableObject"],"requires":["DualMap","Obj","IObjectable","Observable","Class","SetPropertyChange","ObjectUtil","ClearChange","IObservable","RemovePropertyChange"],"autoload":false},"lib/proxy/ProxyMethod.js":{"path":"lib/proxy/ProxyMethod.js","exports":["ProxyMethod"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/stream/Suppliers.js":{"path":"lib/stream/Suppliers.js","exports":["Suppliers"],"requires":["Obj","MethodSupplier","Class","ArraySupplier","IterableSupplier"],"autoload":false},"lib/data/DualMultiSetMap.js":{"path":"lib/data/DualMultiSetMap.js","exports":["DualMultiSetMap"],"requires":["Set","DualMultiMap","Class"],"autoload":false},"lib/data/Stack.js":{"path":"lib/data/Stack.js","exports":["Stack"],"requires":["Obj","Exception","Class","Collection"],"autoload":false},"lib/event/Event.js":{"path":"lib/event/Event.js","exports":["Event"],"requires":["Obj","Class"],"autoload":false},"lib/flow/builders/IterableFlowBuilder.js":{"path":"lib/flow/builders/IterableFlowBuilder.js","exports":["IterableFlowBuilder"],"requires":["Throwables","Class","FlowBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/If.js":{"path":"lib/flow/flows/If.js","exports":["If"],"requires":["Throwables","Assertion","Class","Collections","Flow","TypeUtil"],"autoload":false},"lib/observable/data/ObservableMap.js":{"path":"lib/observable/data/ObservableMap.js","exports":["ObservableMap"],"requires":["Map","Obj","HashTable","IObjectable","Observable","Class","ClearChange","Collection","IMap","PutChange","RemoveChange","TypeUtil"],"autoload":false},"lib/promise/resolvers/ValuesResolver.js":{"path":"lib/promise/resolvers/ValuesResolver.js","exports":["ValuesResolver"],"requires":["Bug","Obj","Exception","ArgUtil","Class","IPromise","List","TypeUtil"],"autoload":false},"lib/stream/Stream.js":{"path":"lib/stream/Stream.js","exports":["Stream"],"requires":["ReduceConsumer","EachOperation","Exception","ArgUtil","Supplier","Class","MapOperation","ISupplier","CollectConsumer","FilterOperation","Func","IConsumer","IStreamable"],"autoload":false},"lib/core/polyfill/Object.js":{"path":"lib/core/polyfill/Object.js","exports":["Object"],"requires":["Notifier"],"autoload":false},"lib/data/HashStore.js":{"path":"lib/data/HashStore.js","exports":["HashStore"],"requires":["Obj","IIterable","HashStoreNode","Class","ObjectUtil","HashStoreIterator"],"autoload":false},"lib/data/UnorderedPair.js":{"path":"lib/data/UnorderedPair.js","exports":["UnorderedPair"],"requires":["Obj","Class","Collection","IArrayable"],"autoload":false},"lib/event/interfaces/IEventDispatcher.js":{"path":"lib/event/interfaces/IEventDispatcher.js","exports":["IEventDispatcher"],"requires":["Interface"],"autoload":false},"lib/flow/builders/IterableSeriesBuilder.js":{"path":"lib/flow/builders/IterableSeriesBuilder.js","exports":["IterableSeriesBuilder"],"requires":["IterableSeries","Class","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/Iteration.js":{"path":"lib/flow/flows/Iteration.js","exports":["Iteration"],"requires":["Class","Flow"],"autoload":false},"lib/observable/data/ObservableSet.js":{"path":"lib/observable/data/ObservableSet.js","exports":["ObservableSet"],"requires":["Obj","Set","ObservableCollection","Class","ISet"],"autoload":false},"lib/proxy/ProxyProperty.js":{"path":"lib/proxy/ProxyProperty.js","exports":["ProxyProperty"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/stream/consumers/ReduceConsumer.js":{"path":"lib/stream/consumers/ReduceConsumer.js","exports":["ReduceConsumer"],"requires":["Throwables","Class","Consumer","TypeUtil"],"autoload":false},"lib/core/polyfill/Reflect.js":{"path":"lib/core/polyfill/Reflect.js","exports":["Reflect"],"requires":["Object"],"autoload":false},"lib/data/HashTable.js":{"path":"lib/data/HashTable.js","exports":["HashTable"],"requires":["Obj","HashTableNode","Exception","Class","ObjectUtil","HashTableIterator","IKeyValueIterable"],"autoload":false},"lib/data/WeightedListNode.js":{"path":"lib/data/WeightedListNode.js","exports":["WeightedListNode"],"requires":["Obj","Class"],"autoload":false},"lib/event/interfaces/IEventPropagator.js":{"path":"lib/event/interfaces/IEventPropagator.js","exports":["IEventPropagator"],"requires":["Interface"],"autoload":false},"lib/flow/builders/SeriesBuilder.js":{"path":"lib/flow/builders/SeriesBuilder.js","exports":["SeriesBuilder"],"requires":["Throwables","Class","FlowBuilder","Series","TaskBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/Parallel.js":{"path":"lib/flow/flows/Parallel.js","exports":["Parallel"],"requires":["Throwables","Class","Flow"],"autoload":false},"lib/observable/interfaces/IObservable.js":{"path":"lib/observable/interfaces/IObservable.js","exports":["IObservable"],"requires":["Interface","IObservationPropagator"],"autoload":false},"lib/proxy/interfaces/IProxy.js":{"path":"lib/proxy/interfaces/IProxy.js","exports":["IProxy"],"requires":["Interface"],"autoload":false},"lib/stream/interfaces/IConsumer.js":{"path":"lib/stream/interfaces/IConsumer.js","exports":["IConsumer"],"requires":["Interface"],"autoload":false},"lib/trace/Tracer.js":{"path":"lib/trace/Tracer.js","exports":["Tracer"],"requires":["Obj","TreeNode","StackTraceUtil","ArgUtil","Class","Proxy","Trace","StringUtil","Tree"],"autoload":false},"lib/validator/ValidatorGroup.js":{"path":"lib/validator/ValidatorGroup.js","exports":["ValidatorGroup"],"requires":["Obj","Class","Collections","Func","ValidatorProcessor"],"autoload":false},"lib/core/interfaces/IIterable.js":{"path":"lib/core/interfaces/IIterable.js","exports":["IIterable"],"requires":["Interface"],"autoload":false},"lib/data/Collection.js":{"path":"lib/data/Collection.js","exports":["Collection"],"requires":["Suppliers","Obj","HashStore","IIterable","Class","ArgumentBug","IArrayable","ICollection","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/data/List.js":{"path":"lib/data/List.js","exports":["List"],"requires":["Obj","Exception","Class","IList","ArgumentBug","Collection","ICollection","TypeUtil"],"autoload":false},"lib/data/interfaces/IObjectable.js":{"path":"lib/data/interfaces/IObjectable.js","exports":["IObjectable"],"requires":["Interface"],"autoload":false},"lib/flow/builders/FlowBuilder.js":{"path":"lib/flow/builders/FlowBuilder.js","exports":["FlowBuilder"],"requires":["Obj","Throwables","ArgUtil","Class","Promises"],"autoload":false},"lib/flow/builders/WhileSeriesBuilder.js":{"path":"lib/flow/builders/WhileSeriesBuilder.js","exports":["WhileSeriesBuilder"],"requires":["Throwables","Class","FlowBuilder","TaskBuilder","TypeUtil","WhileSeries"],"autoload":false},"lib/flow/flows/WhileSeries.js":{"path":"lib/flow/flows/WhileSeries.js","exports":["WhileSeries"],"requires":["Bug","Assertion","Class","Flow","List"],"autoload":false},"lib/promise/Resolver.js":{"path":"lib/promise/Resolver.js","exports":["Resolver"],"requires":["Bug","Obj","ValuesResolver","Exception","ArgUtil","Class","IPromise","List","TypeUtil"],"autoload":false},"lib/query/WhereConditionBuilder.js":{"path":"lib/query/WhereConditionBuilder.js","exports":["WhereConditionBuilder"],"requires":["Obj","Set","WhereCondition","Class","IConditionBuilder"],"autoload":false},"lib/stream/operations/EachOperation.js":{"path":"lib/stream/operations/EachOperation.js","exports":["EachOperation"],"requires":["Obj","Class","IStreamOperation","TypeUtil"],"autoload":false},"lib/flow/builders/ParallelBuilder.js":{"path":"lib/flow/builders/ParallelBuilder.js","exports":["ParallelBuilder"],"requires":["Parallel","Throwables","Class","FlowBuilder","TaskBuilder","TypeUtil"],"autoload":false},"lib/observable/data/ObservableList.js":{"path":"lib/observable/data/ObservableList.js","exports":["ObservableList"],"requires":["Obj","ObservableCollection","Class","IList","AddAtChange","ICollection","List","RemoveAtChange","TypeUtil"],"autoload":false},"lib/stream/interfaces/ISupplier.js":{"path":"lib/stream/interfaces/ISupplier.js","exports":["ISupplier"],"requires":["Interface"],"autoload":false},"lib/change/SetPropertyChange.js":{"path":"lib/change/SetPropertyChange.js","exports":["SetPropertyChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/throwable/ParallelException.js":{"path":"lib/throwable/ParallelException.js","exports":["ParallelException"],"requires":["Exception","Class"],"autoload":false},"lib/validator/Validator.js":{"path":"lib/validator/Validator.js","exports":["Validator"],"requires":["Obj","Class"],"autoload":false},"lib/core/interfaces/IIndexValueIterable.js":{"path":"lib/core/interfaces/IIndexValueIterable.js","exports":["IIndexValueIterable"],"requires":["IIterable","Interface"],"autoload":false},"lib/data/BidiMap.js":{"path":"lib/data/BidiMap.js","exports":["BidiMap"],"requires":["Map","Obj","HashTable","Class","Collection","TypeUtil"],"autoload":false},"lib/data/HashTableNode.js":{"path":"lib/data/HashTableNode.js","exports":["HashTableNode"],"requires":["Obj","Class"],"autoload":false},"lib/data/interfaces/IDocument.js":{"path":"lib/data/interfaces/IDocument.js","exports":["IDocument"],"requires":["Interface"],"autoload":false},"lib/event/query/EventQuery.js":{"path":"lib/event/query/EventQuery.js","exports":["EventQuery"],"requires":["Class","Query"],"autoload":false},"lib/flow/builders/WhileParallelBuilder.js":{"path":"lib/flow/builders/WhileParallelBuilder.js","exports":["WhileParallelBuilder"],"requires":["Throwables","WhileParallel","Class","FlowBuilder","TaskBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/WhileParallel.js":{"path":"lib/flow/flows/WhileParallel.js","exports":["WhileParallel"],"requires":["Throwables","Assertion","Class","Flow","TypeUtil"],"autoload":false},"lib/promise/Promise.js":{"path":"lib/promise/Promise.js","exports":["Promise"],"requires":["Bug","Obj","CatchHandler","FinallyHandler","ArgUtil","Class","CallbackHandler","IPromise","List","Resolver","ThenHandler","TypeUtil"],"autoload":false},"lib/query/Query.js":{"path":"lib/query/Query.js","exports":["Query"],"requires":["Obj","Set","Class","ArgumentBug","ICondition"],"autoload":false},"lib/stream/interfaces/IStreamOperation.js":{"path":"lib/stream/interfaces/IStreamOperation.js","exports":["IStreamOperation"],"requires":["Interface"],"autoload":false}} | ||
{"lib/observable/data/ObservableSet.js":{"path":"lib/observable/data/ObservableSet.js","exports":["ObservableSet"],"requires":["Obj","Set","ObservableCollection","Class","ISet"],"autoload":false},"lib/flow/builders/SeriesBuilder.js":{"path":"lib/flow/builders/SeriesBuilder.js","exports":["SeriesBuilder"],"requires":["Throwables","Class","FlowBuilder","Series","TaskBuilder","TypeUtil"],"autoload":false},"lib/core/interfaces/IArrayable.js":{"path":"lib/core/interfaces/IArrayable.js","exports":["IArrayable"],"requires":["Interface"],"autoload":false},"lib/concurrent/Semaphore.js":{"path":"lib/concurrent/Semaphore.js","exports":["Semaphore"],"requires":["Obj","Class","Queue"],"autoload":false},"lib/data/HashTableNode.js":{"path":"lib/data/HashTableNode.js","exports":["HashTableNode"],"requires":["Obj","Class"],"autoload":false},"lib/observable/Observation.js":{"path":"lib/observable/Observation.js","exports":["Observation"],"requires":["Obj","Class"],"autoload":false},"lib/change/ClearChange.js":{"path":"lib/change/ClearChange.js","exports":["ClearChange"],"requires":["Class","Change"],"autoload":false},"lib/data/Url.js":{"path":"lib/data/Url.js","exports":["Url"],"requires":["Map","Obj","Class","ObjectUtil","TypeUtil"],"autoload":false},"lib/observable/Observer.js":{"path":"lib/observable/Observer.js","exports":["Observer"],"requires":["Obj","Class","ArgumentBug","ObjectPathMatcher","TypeUtil"],"autoload":false},"lib/observable/data/ObservableArray.js":{"path":"lib/observable/data/ObservableArray.js","exports":[],"requires":[],"autoload":false},"lib/flow/builders/IterableParallelBuilder.js":{"path":"lib/flow/builders/IterableParallelBuilder.js","exports":["IterableParallelBuilder"],"requires":["IterableParallel","Class","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/ForEachSeries.js":{"path":"lib/flow/flows/ForEachSeries.js","exports":["ForEachSeries"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator"],"autoload":false},"lib/stream/suppliers/IterableSupllier.js":{"path":"lib/stream/suppliers/IterableSupllier.js","exports":["IterableSupplier"],"requires":["Supplier","Class"],"autoload":false},"scripts/bugcore-node.js":{"path":"scripts/bugcore-node.js","exports":[],"requires":[],"autoload":false},"lib/command/Command.js":{"path":"lib/command/Command.js","exports":["Command"],"requires":["Bug","Obj","Class"],"autoload":false},"lib/throwable/ArgumentBug.js":{"path":"lib/throwable/ArgumentBug.js","exports":["ArgumentBug"],"requires":["Bug","StackTraceUtil","Class"],"autoload":false},"lib/util/ArrayUtil.js":{"path":"lib/util/ArrayUtil.js","exports":["ArrayUtil"],"requires":["TypeUtil"],"autoload":false},"lib/util/TypeUtil.js":{"path":"lib/util/TypeUtil.js","exports":["TypeUtil"],"requires":[],"autoload":false},"lib/core/interfaces/IKeyValueIterable.js":{"path":"lib/core/interfaces/IKeyValueIterable.js","exports":["IKeyValueIterable"],"requires":["IIterable","Interface"],"autoload":false},"lib/data/HashStore.js":{"path":"lib/data/HashStore.js","exports":["HashStore"],"requires":["Obj","IIterable","HashStoreNode","Class","ObjectUtil","HashStoreIterator","IArrayable"],"autoload":false},"lib/event/interfaces/IEventReceiver.js":{"path":"lib/event/interfaces/IEventReceiver.js","exports":["IEventReceiver"],"requires":["Interface"],"autoload":false},"lib/query/interfaces/ICondition.js":{"path":"lib/query/interfaces/ICondition.js","exports":["ICondition"],"requires":["Interface"],"autoload":false},"lib/event/Event.js":{"path":"lib/event/Event.js","exports":["Event"],"requires":["Obj","Class"],"autoload":false},"lib/flow/builders/ForInParallelBuilder.js":{"path":"lib/flow/builders/ForInParallelBuilder.js","exports":["ForInParallelBuilder"],"requires":["Class","ForInParallel","IterableFlowBuilder"],"autoload":false},"lib/change/RemovePropertyChange.js":{"path":"lib/change/RemovePropertyChange.js","exports":["RemovePropertyChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/core/polyfill/Reflect.js":{"path":"lib/core/polyfill/Reflect.js","exports":["Reflect"],"requires":["Object"],"autoload":false},"lib/event/adapters/NodeJsEventEmitterAdapter.js":{"path":"lib/event/adapters/NodeJsEventEmitterAdapter.js","exports":["NodeJsEventEmitterAdapter"],"requires":["Obj","NodeJsEvent","EventDispatcher","ArgUtil","Class","IEventDispatcher","IEventPropagator","IEventReceiver"],"autoload":false},"lib/core/interfaces/IIterator.js":{"path":"lib/core/interfaces/IIterator.js","exports":["IIterator"],"requires":["Interface"],"autoload":false},"lib/util/StringUtil.js":{"path":"lib/util/StringUtil.js","exports":["StringUtil"],"requires":["TypeUtil"],"autoload":false},"lib/event/interfaces/IEventPropagator.js":{"path":"lib/event/interfaces/IEventPropagator.js","exports":["IEventPropagator"],"requires":["Interface"],"autoload":false},"lib/stream/interfaces/IStreamable.js":{"path":"lib/stream/interfaces/IStreamable.js","exports":["IStreamable"],"requires":["Interface"],"autoload":false},"lib/flow/builders/ForInSeriesBuilder.js":{"path":"lib/flow/builders/ForInSeriesBuilder.js","exports":["ForInSeriesBuilder"],"requires":["Class","ForInSeries","IterableFlowBuilder"],"autoload":false},"lib/core/Implementable.js":{"path":"lib/core/Implementable.js","exports":["Implementable"],"requires":[],"autoload":false},"lib/change/AddAtChange.js":{"path":"lib/change/AddAtChange.js","exports":["AddAtChange"],"requires":["Obj","Class","AddChange"],"autoload":false},"lib/command/CommandProcessor.js":{"path":"lib/command/CommandProcessor.js","exports":["CommandProcessor"],"requires":["Obj","Class","IList","Queue","CommandBatch","ArgumentBug","Command","TypeUtil"],"autoload":false},"lib/throwable/Exception.js":{"path":"lib/throwable/Exception.js","exports":["Exception"],"requires":["Class","Throwable"],"autoload":false},"lib/util/DateUtil.js":{"path":"lib/util/DateUtil.js","exports":["DateUtil"],"requires":["Obj","Class","StringUtil"],"autoload":false},"lib/core/Arr.js":{"path":"lib/core/Arr.js","exports":["Arr"],"requires":["Suppliers","Obj","Exception","ArrayIterator","Class","IArrayable","IIndexValueIterable","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/core/polyfill/Function.js":{"path":"lib/core/polyfill/Function.js","exports":["Function"],"requires":[],"autoload":false},"lib/trace/Trace.js":{"path":"lib/trace/Trace.js","exports":["Trace"],"requires":["Obj","Class"],"autoload":false},"lib/data/MultiMap.js":{"path":"lib/data/MultiMap.js","exports":["MultiMap"],"requires":["Map","Class","Collection","IMap","IMultiMap"],"autoload":false},"lib/util/PropertiesChain.js":{"path":"lib/util/PropertiesChain.js","exports":["PropertiesChain"],"requires":["Obj","Exception","Class","List","TypeUtil"],"autoload":false},"lib/flow/flows/WhileSeries.js":{"path":"lib/flow/flows/WhileSeries.js","exports":["WhileSeries"],"requires":["Bug","Assertion","Class","Flow","List"],"autoload":false},"lib/concurrent/LockMap.js":{"path":"lib/concurrent/LockMap.js","exports":["LockMap"],"requires":["Map","Obj","Class","ArgumentBug","Lock"],"autoload":false},"lib/promise/handlers/CallbackHandler.js":{"path":"lib/promise/handlers/CallbackHandler.js","exports":["CallbackHandler"],"requires":["ParallelException","Exception","Class","Handler","TypeUtil"],"autoload":false},"lib/util/WeightedRandomizer.js":{"path":"lib/util/WeightedRandomizer.js","exports":["WeightedRandomizer"],"requires":["Obj","WeightedList","HashTable","RandomUtil","Class","Collection"],"autoload":false},"lib/throwable/ParallelException.js":{"path":"lib/throwable/ParallelException.js","exports":["ParallelException"],"requires":["Exception","Class"],"autoload":false},"lib/data/List.js":{"path":"lib/data/List.js","exports":["List"],"requires":["Obj","Exception","ArrayIterator","Class","IList","ArgumentBug","Collection","ICollection","IIndexValueIterable","TypeUtil"],"autoload":false},"lib/core/polyfill/Notifier.js":{"path":"lib/core/polyfill/Notifier.js","exports":["Notifier"],"requires":[],"autoload":false},"lib/core/interfaces/IKeyValueIterator.js":{"path":"lib/core/interfaces/IKeyValueIterator.js","exports":["IKeyValueIterator"],"requires":["IIterator","Interface"],"autoload":false},"lib/flow/builders/WhileSeriesBuilder.js":{"path":"lib/flow/builders/WhileSeriesBuilder.js","exports":["WhileSeriesBuilder"],"requires":["Throwables","Class","FlowBuilder","TaskBuilder","TypeUtil","WhileSeries"],"autoload":false},"lib/data/Collection.js":{"path":"lib/data/Collection.js","exports":["Collection"],"requires":["Suppliers","Obj","HashStore","IIterable","Class","ArgumentBug","IArrayable","ICollection","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/core/interfaces/IIndexValueIterator.js":{"path":"lib/core/interfaces/IIndexValueIterator.js","exports":["IIndexValueIterator"],"requires":["IIterator","Interface"],"autoload":false},"lib/util/RandomUtil.js":{"path":"lib/util/RandomUtil.js","exports":["RandomUtil"],"requires":["Obj","Class"],"autoload":false},"lib/proxy/Proxy.js":{"path":"lib/proxy/Proxy.js","exports":["Proxy"],"requires":["Obj","ProxyProperty","Exception","Class","IProxy","ProxyMethod","ProxyObject","TypeUtil"],"autoload":false},"lib/flow/flows/Parallel.js":{"path":"lib/flow/flows/Parallel.js","exports":["Parallel"],"requires":["Throwables","Class","Flow"],"autoload":false},"lib/promise/resolvers/ValuesResolver.js":{"path":"lib/promise/resolvers/ValuesResolver.js","exports":["ValuesResolver"],"requires":["Bug","Obj","Exception","ArgUtil","Class","IPromise","List","TypeUtil"],"autoload":false},"lib/flow/builders/ForEachParallelBuilder.js":{"path":"lib/flow/builders/ForEachParallelBuilder.js","exports":["ForEachParallelBuilder"],"requires":["ForEachParallel","Class","IterableFlowBuilder"],"autoload":false},"lib/util/MathUtil.js":{"path":"lib/util/MathUtil.js","exports":["MathUtil"],"requires":["Obj","Class"],"autoload":false},"lib/stream/interfaces/IConsumer.js":{"path":"lib/stream/interfaces/IConsumer.js","exports":["IConsumer"],"requires":["Interface"],"autoload":false},"lib/util/UuidGenerator.js":{"path":"lib/util/UuidGenerator.js","exports":["UuidGenerator"],"requires":["Obj","RandomUtil","Class"],"autoload":false},"lib/flow/flows/If.js":{"path":"lib/flow/flows/If.js","exports":["If"],"requires":["Throwables","Assertion","Class","Collections","Flow","TypeUtil"],"autoload":false},"lib/data/iterators/HashStoreIterator.js":{"path":"lib/data/iterators/HashStoreIterator.js","exports":["HashStoreIterator"],"requires":["Obj","IIterator","Exception","ArrayIterator","Class","ObjectIterator"],"autoload":false},"lib/data/interfaces/ISet.js":{"path":"lib/data/interfaces/ISet.js","exports":["ISet"],"requires":["Interface","ICollection"],"autoload":false},"lib/observable/data/ObservableList.js":{"path":"lib/observable/data/ObservableList.js","exports":["ObservableList"],"requires":["Obj","ObservableCollection","Class","IList","AddAtChange","ICollection","List","RemoveAtChange","TypeUtil"],"autoload":false},"lib/change/AddChange.js":{"path":"lib/change/AddChange.js","exports":["AddChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/concurrent/Lock.js":{"path":"lib/concurrent/Lock.js","exports":["Lock"],"requires":["EventDispatcher","Class","Event","Queue"],"autoload":false},"lib/throwable/MappedParallelException.js":{"path":"lib/throwable/MappedParallelException.js","exports":["MappedParallelException"],"requires":["Map","ParallelException","StackTraceUtil","Class"],"autoload":false},"lib/util/FunctionUtil.js":{"path":"lib/util/FunctionUtil.js","exports":["FunctionUtil"],"requires":["TypeUtil"],"autoload":false},"lib/change/Change.js":{"path":"lib/change/Change.js","exports":["Change"],"requires":["Obj","Class"],"autoload":false},"lib/match/ObjectPathMatcher.js":{"path":"lib/match/ObjectPathMatcher.js","exports":["ObjectPathMatcher"],"requires":["Obj","Class"],"autoload":false},"lib/data/DualMap.js":{"path":"lib/data/DualMap.js","exports":["DualMap"],"requires":["Map","Obj","HashTable","Class","Collection","TypeUtil"],"autoload":false},"lib/query/WhereConditionBuilder.js":{"path":"lib/query/WhereConditionBuilder.js","exports":["WhereConditionBuilder"],"requires":["Obj","Set","WhereCondition","Class","IConditionBuilder"],"autoload":false},"lib/observable/data/ObservableCollection.js":{"path":"lib/observable/data/ObservableCollection.js","exports":["ObservableCollection"],"requires":["Obj","IIterable","Observable","Class","Proxy","AddChange","ArgumentBug","ClearChange","Collection","IArrayable","ICollection","RemoveChange","TypeUtil"],"autoload":false},"lib/flow/Flows.js":{"path":"lib/flow/Flows.js","exports":["Flows"],"requires":["Obj","ForEachParallelBuilder","ForEachSeriesBuilder","ParallelBuilder","Class","WhileParallelBuilder","FlowBuilder","ForInParallelBuilder","ForInSeriesBuilder","IfBuilder","IterableParallelBuilder","IterableSeriesBuilder","SeriesBuilder","TaskBuilder","WhileSeriesBuilder"],"autoload":false},"lib/flow/flows/Flow.js":{"path":"lib/flow/flows/Flow.js","exports":["Flow"],"requires":["Obj","Throwables","ArgUtil","Class","Resolver","Tracer","TypeUtil"],"autoload":false},"lib/data/interfaces/IDocument.js":{"path":"lib/data/interfaces/IDocument.js","exports":["IDocument"],"requires":["Interface"],"autoload":false},"lib/data/iterators/WeightedListIterator.js":{"path":"lib/data/iterators/WeightedListIterator.js","exports":["WeightedListIterator"],"requires":["Obj","Exception","ArrayIterator","Class","IIndexValueIterator","TypeUtil"],"autoload":false},"lib/core/polyfill/Object.js":{"path":"lib/core/polyfill/Object.js","exports":["Object"],"requires":["Notifier"],"autoload":false},"lib/stream/operations/EachOperation.js":{"path":"lib/stream/operations/EachOperation.js","exports":["EachOperation"],"requires":["Obj","Class","IStreamOperation","TypeUtil"],"autoload":false},"lib/data/HashStoreNode.js":{"path":"lib/data/HashStoreNode.js","exports":["HashStoreNode"],"requires":["Obj","Class"],"autoload":false},"lib/data/GraphEdge.js":{"path":"lib/data/GraphEdge.js","exports":["GraphEdge"],"requires":["Obj","Class","GraphNode"],"autoload":false},"lib/change/PutChange.js":{"path":"lib/change/PutChange.js","exports":["PutChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/concurrent/LockStriped.js":{"path":"lib/concurrent/LockStriped.js","exports":["LockStriped"],"requires":["Obj","Striped","Class","Lock"],"autoload":false},"lib/throwable/MappedThrowable.js":{"path":"lib/throwable/MappedThrowable.js","exports":["MappedThrowable"],"requires":["Map","Class","Throwable"],"autoload":false},"lib/event/query/EventQueryBuilder.js":{"path":"lib/event/query/EventQueryBuilder.js","exports":["EventQueryBuilder"],"requires":["Obj","EventQuery","QueryBuilder","EventQueryListener","Class"],"autoload":false},"lib/data/DependencyGraph.js":{"path":"lib/data/DependencyGraph.js","exports":["DependencyGraph"],"requires":["Map","Obj","Set","Class","Graph","GraphEdge","GraphNode","List"],"autoload":false},"lib/core/interfaces/IIterable.js":{"path":"lib/core/interfaces/IIterable.js","exports":["IIterable"],"requires":["Interface"],"autoload":false},"lib/throwable/Throwable.js":{"path":"lib/throwable/Throwable.js","exports":["Throwable"],"requires":["Obj","IObjectable","StackTraceUtil","Class","TypeUtil"],"autoload":false},"lib/stream/Suppliers.js":{"path":"lib/stream/Suppliers.js","exports":["Suppliers"],"requires":["Obj","MethodSupplier","Class","ArraySupplier","IterableSupplier"],"autoload":false},"lib/data/HashTable.js":{"path":"lib/data/HashTable.js","exports":["HashTable"],"requires":["Obj","HashTableNode","Exception","Class","ObjectUtil","HashTableIterator","IKeyValueIterable"],"autoload":false},"lib/core/iterators/ArrayIterator.js":{"path":"lib/core/iterators/ArrayIterator.js","exports":["ArrayIterator"],"requires":["Obj","Exception","Array","Class","IIndexValueIterator","TypeUtil"],"autoload":false},"lib/data/Document.js":{"path":"lib/data/Document.js","exports":["Document"],"requires":["Bug","Obj","IDocument","IObjectable","ArgUtil","Class","IList","IClone","IMap","ISet","TypeUtil"],"autoload":false},"lib/stream/operations/FilterOperation.js":{"path":"lib/stream/operations/FilterOperation.js","exports":["FilterOperation"],"requires":["Obj","Class","IStreamOperation"],"autoload":false},"lib/data/Stack.js":{"path":"lib/data/Stack.js","exports":["Stack"],"requires":["Obj","Exception","ArrayIterator","Class","Collection","IIndexValueIterable"],"autoload":false},"lib/core/interfaces/IClone.js":{"path":"lib/core/interfaces/IClone.js","exports":["IClone"],"requires":["Interface"],"autoload":false},"lib/util/HtmlUtil.js":{"path":"lib/util/HtmlUtil.js","exports":["HtmlUtil"],"requires":["Obj","Url","ArgUtil","Class"],"autoload":false},"lib/promise/interfaces/IPromise.js":{"path":"lib/promise/interfaces/IPromise.js","exports":["IPromise"],"requires":["Interface"],"autoload":false},"lib/validator/ValidatorProcessor.js":{"path":"lib/validator/ValidatorProcessor.js","exports":["ValidatorProcessor"],"requires":["Obj","Exception","Class","Flows","Collections"],"autoload":false},"lib/change/SetPropertyChange.js":{"path":"lib/change/SetPropertyChange.js","exports":["SetPropertyChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/publisher/PublisherMessage.js":{"path":"lib/publisher/PublisherMessage.js","exports":["PublisherMessage"],"requires":["Obj","Class"],"autoload":false},"lib/event/EventDispatcher.js":{"path":"lib/event/EventDispatcher.js","exports":["EventDispatcher"],"requires":["Class","EventReceiver","IEventDispatcher"],"autoload":false},"lib/promise/Deferred.js":{"path":"lib/promise/Deferred.js","exports":["Deferred"],"requires":["Obj","ArgUtil","Class","Promise"],"autoload":false},"lib/data/interfaces/IList.js":{"path":"lib/data/interfaces/IList.js","exports":["IList"],"requires":["Interface","ICollection"],"autoload":false},"lib/query/WhereCondition.js":{"path":"lib/query/WhereCondition.js","exports":["WhereCondition"],"requires":["Obj","Set","Class","ObjectUtil","ICondition"],"autoload":false},"lib/data/DualMultiSetMap.js":{"path":"lib/data/DualMultiSetMap.js","exports":["DualMultiSetMap"],"requires":["Set","DualMultiMap","Class"],"autoload":false},"lib/state/StateMachine.js":{"path":"lib/state/StateMachine.js","exports":["StateMachine"],"requires":["Set","StateEvent","EventDispatcher","Exception","Class"],"autoload":false},"lib/validator/ValidationMachine.js":{"path":"lib/validator/ValidationMachine.js","exports":["ValidationMachine"],"requires":["Obj","Class","Collections","Validator","ValidatorGroup","ValidatorProcessor"],"autoload":false},"lib/util/LiteralUtil.js":{"path":"lib/util/LiteralUtil.js","exports":["LiteralUtil"],"requires":["Obj","IObjectable","Class","ObjectUtil","IArrayable","TypeUtil"],"autoload":false},"package.json":{"path":"package.json","exports":[],"requires":[],"autoload":false},"lib/flow/flows/Task.js":{"path":"lib/flow/flows/Task.js","exports":["Task"],"requires":["Class","Flow"],"autoload":false},"lib/flow/flows/Iteration.js":{"path":"lib/flow/flows/Iteration.js","exports":["Iteration"],"requires":["Class","Flow"],"autoload":false},"lib/data/interfaces/IMap.js":{"path":"lib/data/interfaces/IMap.js","exports":["IMap"],"requires":["Interface","IObjectable"],"autoload":false},"lib/validator/Validator.js":{"path":"lib/validator/Validator.js","exports":["Validator"],"requires":["Obj","Class"],"autoload":false},"lib/change/RemoveChange.js":{"path":"lib/change/RemoveChange.js","exports":["RemoveChange"],"requires":["Obj","Class","Change"],"autoload":false},"lib/publisher/Publisher.js":{"path":"lib/publisher/Publisher.js","exports":["Publisher"],"requires":["Map","Obj","PublisherSubscription","Class","List","PublisherMessage"],"autoload":false},"lib/trace/Tracer.js":{"path":"lib/trace/Tracer.js","exports":["Tracer"],"requires":["Obj","TreeNode","StackTraceUtil","ArgUtil","Class","Proxy","Trace","StringUtil","Tree"],"autoload":false},"lib/util/Properties.js":{"path":"lib/util/Properties.js","exports":["Properties"],"requires":["Obj","Class","ObjectUtil","TypeUtil"],"autoload":false},"lib/core/Obj.js":{"path":"lib/core/Obj.js","exports":["Obj"],"requires":["Class","IdGenerator","ObjectUtil","HashUtil","IClone","IEquals","IHashCode","TypeUtil"],"autoload":false},"lib/publisher/PublisherSubscription.js":{"path":"lib/publisher/PublisherSubscription.js","exports":["PublisherSubscription"],"requires":["Obj","Class","HashUtil"],"autoload":false},"lib/stream/interfaces/IStreamOperation.js":{"path":"lib/stream/interfaces/IStreamOperation.js","exports":["IStreamOperation"],"requires":["Interface"],"autoload":false},"lib/core/polyfill/Array.js":{"path":"lib/core/polyfill/Array.js","exports":["Array"],"requires":["Notifier","Object"],"autoload":false},"lib/flow/builders/ForEachSeriesBuilder.js":{"path":"lib/flow/builders/ForEachSeriesBuilder.js","exports":["ForEachSeriesBuilder"],"requires":["ForEachSeries","Class","IterableFlowBuilder"],"autoload":false},"lib/core/interfaces/IJsonable.js":{"path":"lib/core/interfaces/IJsonable.js","exports":["IJsonable"],"requires":["Interface"],"autoload":false},"lib/util/HashUtil.js":{"path":"lib/util/HashUtil.js","exports":["HashUtil"],"requires":["IdGenerator","TypeUtil"],"autoload":false},"lib/event/interfaces/IEventDispatcher.js":{"path":"lib/event/interfaces/IEventDispatcher.js","exports":["IEventDispatcher"],"requires":["Interface"],"autoload":false},"lib/flow/flows/IterableSeries.js":{"path":"lib/flow/flows/IterableSeries.js","exports":["IterableSeries"],"requires":["IterableFlow","Class"],"autoload":false},"lib/flow/builders/IterableFlowBuilder.js":{"path":"lib/flow/builders/IterableFlowBuilder.js","exports":["IterableFlowBuilder"],"requires":["Throwables","Class","FlowBuilder","TypeUtil"],"autoload":false},"lib/core/interfaces/IEquals.js":{"path":"lib/core/interfaces/IEquals.js","exports":["IEquals"],"requires":["Interface"],"autoload":false},"lib/core/Interface.js":{"path":"lib/core/Interface.js","exports":["Interface"],"requires":["Implementable","TypeUtil"],"autoload":false},"lib/core/interfaces/IObjectable.js":{"path":"lib/core/interfaces/IObjectable.js","exports":["IObjectable"],"requires":["Interface"],"autoload":false},"lib/core/interfaces/IIndexValueIterable.js":{"path":"lib/core/interfaces/IIndexValueIterable.js","exports":["IIndexValueIterable"],"requires":["IIterable","Interface"],"autoload":false},"lib/change/RemoveAtChange.js":{"path":"lib/change/RemoveAtChange.js","exports":["RemoveAtChange"],"requires":["Obj","Class","RemoveChange"],"autoload":false},"lib/concurrent/RateLimiter.js":{"path":"lib/concurrent/RateLimiter.js","exports":["RateLimiter"],"requires":["Obj","Class","Queue","Func"],"autoload":false},"lib/throwable/Throwables.js":{"path":"lib/throwable/Throwables.js","exports":["Throwables"],"requires":["Bug","Obj","ParallelException","Exception","Class","ArgumentBug"],"autoload":false},"lib/util/ObjectUtil.js":{"path":"lib/util/ObjectUtil.js","exports":["ObjectUtil"],"requires":["FunctionUtil","Object","Reflect","TypeUtil"],"autoload":false},"lib/core/Func.js":{"path":"lib/core/Func.js","exports":["Func"],"requires":["Obj","Class","TypeUtil"],"autoload":false},"lib/data/DualMultiMap.js":{"path":"lib/data/DualMultiMap.js","exports":["DualMultiMap"],"requires":["DualMap","Class","Collection","TypeUtil"],"autoload":false},"lib/data/Striped.js":{"path":"lib/data/Striped.js","exports":["Striped"],"requires":["Map","Obj","Class","List","TypeUtil"],"autoload":false},"lib/data/iterators/HashTableIterator.js":{"path":"lib/data/iterators/HashTableIterator.js","exports":["HashTableIterator"],"requires":["Obj","Exception","ArrayIterator","Class","IKeyValueIterator","ObjectIterator"],"autoload":false},"lib/flow/builders/IfBuilder.js":{"path":"lib/flow/builders/IfBuilder.js","exports":["IfBuilder"],"requires":["If","Throwables","Class","FlowBuilder","List","TaskBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/ForInSeries.js":{"path":"lib/flow/flows/ForInSeries.js","exports":["ForInSeries"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator"],"autoload":false},"lib/observable/data/ObservableObject.js":{"path":"lib/observable/data/ObservableObject.js","exports":["ObservableObject"],"requires":["DualMap","Obj","IObjectable","Observable","Class","SetPropertyChange","ObjectUtil","ClearChange","IObservable","RemovePropertyChange"],"autoload":false},"lib/promise/handlers/FinallyHandler.js":{"path":"lib/promise/handlers/FinallyHandler.js","exports":["FinallyHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/query/interfaces/IConditionBuilder.js":{"path":"lib/query/interfaces/IConditionBuilder.js","exports":["IConditionBuilder"],"requires":["Interface"],"autoload":false},"lib/stream/interfaces/ISupplier.js":{"path":"lib/stream/interfaces/ISupplier.js","exports":["ISupplier"],"requires":["Interface"],"autoload":false},"lib/data/MultiListMap.js":{"path":"lib/data/MultiListMap.js","exports":["MultiListMap"],"requires":["Class","List","MultiMap"],"autoload":false},"lib/data/TreeNode.js":{"path":"lib/data/TreeNode.js","exports":["TreeNode"],"requires":["Obj","Class","List"],"autoload":false},"lib/event/EventPropagator.js":{"path":"lib/event/EventPropagator.js","exports":["EventPropagator"],"requires":["Obj","Class","IEventPropagator","List"],"autoload":false},"lib/flow/builders/ParallelBuilder.js":{"path":"lib/flow/builders/ParallelBuilder.js","exports":["ParallelBuilder"],"requires":["Parallel","Throwables","Class","FlowBuilder","TaskBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/IterableParallel.js":{"path":"lib/flow/flows/IterableParallel.js","exports":["IterableParallel"],"requires":["IIterable","IterableFlow","Class","MappedParallelException"],"autoload":false},"lib/observable/interfaces/IObservationPropagator.js":{"path":"lib/observable/interfaces/IObservationPropagator.js","exports":["IObservationPropagator"],"requires":["Interface"],"autoload":false},"lib/proxy/ProxyMethod.js":{"path":"lib/proxy/ProxyMethod.js","exports":["ProxyMethod"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/stream/Consumer.js":{"path":"lib/stream/Consumer.js","exports":["Consumer"],"requires":["Bug","Obj","Throwables","Supplier","Class","ISupplier","IConsumer"],"autoload":false},"lib/stream/suppliers/ArraySupplier.js":{"path":"lib/stream/suppliers/ArraySupplier.js","exports":["ArraySupplier"],"requires":["Supplier","Class"],"autoload":false},"lib/BugCore.js":{"path":"lib/BugCore.js","exports":["BugCore"],"requires":["Suppliers","Constructor","Bug","Map","Obj","Set","Implementable","HashStore","HashTable","ProxyProperty","Striped","IIterable","IIterator","Interface","IObjectable","DateUtil","EventDispatcher","Exception","EventPropagator","ArgUtil","Class","Event","Flows","IList","Proxy","Queue","IdGenerator","Stack","ObjectUtil","ArrayUtil","Collection","Collections","EventReceiver","Func","HashUtil","IArrayable","IClone","ICollection","IEquals","IHashCode","IMap","IProxy","ISet","List","Lock","MathUtil","Pair","ProxyMethod","ProxyObject","RateLimiter","Semaphore","Stream","StringUtil","Throwable","TypeUtil"],"autoload":false},"lib/command/CommandBatch.js":{"path":"lib/command/CommandBatch.js","exports":["CommandBatch"],"requires":["Bug","Obj","ArgUtil","Class","List"],"autoload":false},"lib/throwable/Bug.js":{"path":"lib/throwable/Bug.js","exports":["Bug"],"requires":["Class","Throwable"],"autoload":false},"lib/util/Config.js":{"path":"lib/util/Config.js","exports":["Config"],"requires":["Obj","IObjectable","IJsonable","Class","Properties"],"autoload":false},"lib/validator/ValidatorGroup.js":{"path":"lib/validator/ValidatorGroup.js","exports":["ValidatorGroup"],"requires":["Obj","Class","Collections","Func","ValidatorProcessor"],"autoload":false},"lib/core/iterators/ObjectIterator.js":{"path":"lib/core/iterators/ObjectIterator.js","exports":["ObjectIterator"],"requires":["Obj","Exception","Class","ObjectUtil","IKeyValueIterator","Object","TypeUtil"],"autoload":false},"lib/data/Map.js":{"path":"lib/data/Map.js","exports":["Map"],"requires":["Obj","HashTable","IObjectable","Class","ObjectUtil","Collection","IKeyValueIterable","IMap","TypeUtil"],"autoload":false},"lib/data/Tree.js":{"path":"lib/data/Tree.js","exports":["Tree"],"requires":["Obj","Class"],"autoload":false},"lib/event/EventListener.js":{"path":"lib/event/EventListener.js","exports":["EventListener"],"requires":["Obj","Class"],"autoload":false},"lib/flow/builders/IterableSeriesBuilder.js":{"path":"lib/flow/builders/IterableSeriesBuilder.js","exports":["IterableSeriesBuilder"],"requires":["IterableSeries","Class","IterableFlowBuilder"],"autoload":false},"lib/flow/flows/IterableFlow.js":{"path":"lib/flow/flows/IterableFlow.js","exports":["IterableFlow"],"requires":["IIterable","Throwables","ArgUtil","ArrayIterator","Class","Flow","Iteration","ObjectIterator","TypeUtil"],"autoload":false},"lib/observable/interfaces/IObservable.js":{"path":"lib/observable/interfaces/IObservable.js","exports":["IObservable"],"requires":["Interface","IObservationPropagator"],"autoload":false},"lib/core/Class.js":{"path":"lib/core/Class.js","exports":["Class"],"requires":["Constructor","TypeUtil"],"autoload":false},"lib/data/BidiMap.js":{"path":"lib/data/BidiMap.js","exports":["BidiMap"],"requires":["Map","Obj","HashTable","Class","Collection","TypeUtil"],"autoload":false},"lib/data/MultiSetMap.js":{"path":"lib/data/MultiSetMap.js","exports":["MultiSetMap"],"requires":["Set","Class","MultiMap"],"autoload":false},"lib/data/UnorderedPair.js":{"path":"lib/data/UnorderedPair.js","exports":["UnorderedPair"],"requires":["Obj","Class","Collection","IArrayable"],"autoload":false},"lib/event/EventReceiver.js":{"path":"lib/event/EventReceiver.js","exports":["EventReceiver"],"requires":["EventQueryBuilder","EventListener","EventPropagator","Class","IEventReceiver","MultiListMap","TypeUtil"],"autoload":false},"lib/flow/builders/TaskBuilder.js":{"path":"lib/flow/builders/TaskBuilder.js","exports":["TaskBuilder"],"requires":["Throwables","Class","FlowBuilder","Task","TypeUtil"],"autoload":false},"lib/flow/flows/Series.js":{"path":"lib/flow/flows/Series.js","exports":["Series"],"requires":["Class","Flow"],"autoload":false},"lib/promise/Handler.js":{"path":"lib/promise/Handler.js","exports":["Handler"],"requires":["Bug","Obj","Class","TypeUtil"],"autoload":false},"lib/proxy/ProxyObject.js":{"path":"lib/proxy/ProxyObject.js","exports":["ProxyObject"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/stream/Stream.js":{"path":"lib/stream/Stream.js","exports":["Stream"],"requires":["ReduceConsumer","EachOperation","Exception","ArgUtil","Supplier","Class","MapOperation","ISupplier","CollectConsumer","FilterOperation","Func","IConsumer","IStreamable"],"autoload":false},"lib/stream/suppliers/MethodSupplier.js":{"path":"lib/stream/suppliers/MethodSupplier.js","exports":["MethodSupplier"],"requires":["Supplier","Class"],"autoload":false},"lib/util/IdGenerator.js":{"path":"lib/util/IdGenerator.js","exports":["IdGenerator"],"requires":[],"autoload":false},"lib/core/Constructor.js":{"path":"lib/core/Constructor.js","exports":["Constructor"],"requires":[],"autoload":false},"lib/data/Collections.js":{"path":"lib/data/Collections.js","exports":["Collections"],"requires":["Map","Obj","Set","Exception","Class","Queue","Collection","List","MultiListMap"],"autoload":false},"lib/data/Pair.js":{"path":"lib/data/Pair.js","exports":["Pair"],"requires":["Obj","IObjectable","Exception","Class","IArrayable","TypeUtil"],"autoload":false},"lib/data/WeightedList.js":{"path":"lib/data/WeightedList.js","exports":["WeightedList"],"requires":["Obj","WeightedListNode","WeightedListIterator","Exception","Class","Collection","List","TypeUtil"],"autoload":false},"lib/event/adapters/NodeJsEvent.js":{"path":"lib/event/adapters/NodeJsEvent.js","exports":["NodeJsEvent"],"requires":["Class","Event"],"autoload":false},"lib/flow/builders/WhileParallelBuilder.js":{"path":"lib/flow/builders/WhileParallelBuilder.js","exports":["WhileParallelBuilder"],"requires":["Throwables","WhileParallel","Class","FlowBuilder","TaskBuilder","TypeUtil"],"autoload":false},"lib/flow/flows/WhileParallel.js":{"path":"lib/flow/flows/WhileParallel.js","exports":["WhileParallel"],"requires":["Throwables","Assertion","Class","Flow","TypeUtil"],"autoload":false},"lib/promise/Promise.js":{"path":"lib/promise/Promise.js","exports":["Promise"],"requires":["Bug","Obj","CatchHandler","FinallyHandler","ArgUtil","Class","CallbackHandler","IPromise","List","Resolver","ThenHandler","TypeUtil"],"autoload":false},"lib/proxy/ProxyProperty.js":{"path":"lib/proxy/ProxyProperty.js","exports":["ProxyProperty"],"requires":["Obj","Interface","Class","IProxy"],"autoload":false},"lib/stream/Streams.js":{"path":"lib/stream/Streams.js","exports":["Streams"],"requires":["Arr","Obj","Exception","Class","IStreamable","Stream","TypeUtil"],"autoload":false},"lib/util/ArgUtil.js":{"path":"lib/util/ArgUtil.js","exports":["ArgUtil"],"requires":["Bug","Obj","Class","ObjectUtil","ArgumentBug","TypeUtil"],"autoload":false},"lib/util/StackTraceUtil.js":{"path":"lib/util/StackTraceUtil.js","exports":["StackTraceUtil"],"requires":["Obj","Class","StringUtil"],"autoload":false},"lib/core/interfaces/IHashCode.js":{"path":"lib/core/interfaces/IHashCode.js","exports":["IHashCode"],"requires":["Interface"],"autoload":false},"lib/data/GraphNode.js":{"path":"lib/data/GraphNode.js","exports":["GraphNode"],"requires":["Obj","Class"],"autoload":false},"lib/data/Set.js":{"path":"lib/data/Set.js","exports":["Set"],"requires":["Obj","Class","Collection","ISet"],"autoload":false},"lib/data/interfaces/IMultiMap.js":{"path":"lib/data/interfaces/IMultiMap.js","exports":["IMultiMap"],"requires":["Interface","IMap"],"autoload":false},"lib/flow/builders/FlowBuilder.js":{"path":"lib/flow/builders/FlowBuilder.js","exports":["FlowBuilder"],"requires":["Obj","Throwables","ArgUtil","Class","Promises"],"autoload":false},"lib/flow/flows/ForInParallel.js":{"path":"lib/flow/flows/ForInParallel.js","exports":["ForInParallel"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator","MappedParallelException"],"autoload":false},"lib/observable/data/ObservableMap.js":{"path":"lib/observable/data/ObservableMap.js","exports":["ObservableMap"],"requires":["Map","Obj","HashTable","IObjectable","Observable","Class","ClearChange","Collection","IMap","PutChange","RemoveChange","TypeUtil"],"autoload":false},"lib/promise/handlers/CatchHandler.js":{"path":"lib/promise/handlers/CatchHandler.js","exports":["CatchHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/query/QueryBuilder.js":{"path":"lib/query/QueryBuilder.js","exports":["QueryBuilder"],"requires":["Obj","Set","Class","Query","WhereConditionBuilder"],"autoload":false},"lib/stream/consumers/ReduceConsumer.js":{"path":"lib/stream/consumers/ReduceConsumer.js","exports":["ReduceConsumer"],"requires":["Throwables","Class","Consumer","TypeUtil"],"autoload":false},"lib/data/Graph.js":{"path":"lib/data/Graph.js","exports":["Graph"],"requires":["Map","Obj","Set","Exception","Class","GraphEdge","GraphNode"],"autoload":false},"lib/data/ReferenceGraph.js":{"path":"lib/data/ReferenceGraph.js","exports":["ReferenceGraph"],"requires":["Map","Obj","Set","Class","Graph","GraphEdge","GraphNode","List"],"autoload":false},"lib/data/interfaces/ICollection.js":{"path":"lib/data/interfaces/ICollection.js","exports":["ICollection"],"requires":["Interface","IArrayable"],"autoload":false},"lib/event/query/EventQueyListener.js":{"path":"lib/event/query/EventQueyListener.js","exports":["EventQueryListener"],"requires":["EventListener","Class"],"autoload":false},"lib/flow/flows/ForEachParallel.js":{"path":"lib/flow/flows/ForEachParallel.js","exports":["ForEachParallel"],"requires":["IterableFlow","Class","IIndexValueIterator","IKeyValueIterator","MappedParallelException"],"autoload":false},"lib/observable/ObservationPropagator.js":{"path":"lib/observable/ObservationPropagator.js","exports":["ObservationPropagator"],"requires":["Obj","IObservationPropagator","Class","List"],"autoload":false},"lib/promise/Resolver.js":{"path":"lib/promise/Resolver.js","exports":["Resolver"],"requires":["Bug","Obj","ValuesResolver","Exception","ArgUtil","Class","IPromise","List","TypeUtil"],"autoload":false},"lib/query/Query.js":{"path":"lib/query/Query.js","exports":["Query"],"requires":["Obj","Set","Class","ArgumentBug","ICondition"],"autoload":false},"lib/stream/consumers/CollectConsumer.js":{"path":"lib/stream/consumers/CollectConsumer.js","exports":["CollectConsumer"],"requires":["Throwables","Class","Consumer","ICollection"],"autoload":false},"lib/data/Queue.js":{"path":"lib/data/Queue.js","exports":["Queue"],"requires":["Obj","Exception","ArrayIterator","Class","Collection","IIndexValueIterable"],"autoload":false},"lib/data/WeightedListNode.js":{"path":"lib/data/WeightedListNode.js","exports":["WeightedListNode"],"requires":["Obj","Class"],"autoload":false},"lib/event/query/EventQuery.js":{"path":"lib/event/query/EventQuery.js","exports":["EventQuery"],"requires":["Class","Query"],"autoload":false},"lib/flow/flows/Assertion.js":{"path":"lib/flow/flows/Assertion.js","exports":["Assertion"],"requires":["Throwables","Class","Flow","TypeUtil"],"autoload":false},"lib/observable/Observable.js":{"path":"lib/observable/Observable.js","exports":["Observable"],"requires":["Set","ObservationPropagator","Class","Observation","ArgumentBug","IObservable","MultiListMap","Observer","TypeUtil"],"autoload":false},"lib/promise/Promises.js":{"path":"lib/promise/Promises.js","exports":["Promises"],"requires":["Obj","Class","Promise","Deferred","IPromise","TypeUtil"],"autoload":false},"lib/proxy/interfaces/IProxy.js":{"path":"lib/proxy/interfaces/IProxy.js","exports":["IProxy"],"requires":["Interface"],"autoload":false},"lib/stream/Supplier.js":{"path":"lib/stream/Supplier.js","exports":["Supplier"],"requires":["Bug","Obj","Exception","Class","ISupplier","IConsumer"],"autoload":false},"lib/promise/handlers/ThenHandler.js":{"path":"lib/promise/handlers/ThenHandler.js","exports":["ThenHandler"],"requires":["Class","Handler","TypeUtil"],"autoload":false},"lib/state/events/StateEvent.js":{"path":"lib/state/events/StateEvent.js","exports":["StateEvent"],"requires":["Class","Event"],"autoload":false},"lib/stream/operations/MapOperation.js":{"path":"lib/stream/operations/MapOperation.js","exports":["MapOperation"],"requires":["Obj","Class","IStreamOperation"],"autoload":false}} |
@@ -17,3 +17,3 @@ /* | ||
//@Require('Exception') | ||
//@Require('ICollection') | ||
//@Require('IArrayable') | ||
//@Require('IIndexValueIterable') | ||
@@ -40,3 +40,3 @@ //@Require('IStreamable') | ||
var Exception = bugpack.require('Exception'); | ||
var ICollection = bugpack.require('ICollection'); | ||
var IArrayable = bugpack.require('IArrayable'); | ||
var IIndexValueIterable = bugpack.require('IIndexValueIterable'); | ||
@@ -95,3 +95,3 @@ var IStreamable = bugpack.require('IStreamable'); | ||
/** | ||
* @param {(ICollection.<V> | Array.<V>)=} items | ||
* @param {(IArrayable.<V> | Array.<V>)=} items | ||
* @return {Arr} | ||
@@ -105,6 +105,6 @@ */ | ||
this.array = items; | ||
} else if (Class.doesImplement(items, ICollection)){ | ||
this.array = items.getValueArray(); | ||
} else if (Class.doesImplement(items, IArrayable)){ | ||
this.array = items.toArray(); | ||
} else { | ||
throw new Exception("IllegalArgument", {}, "'items' must either be an Array or implement ICollection"); | ||
throw new Exception("IllegalArgument", {}, "'items' must either be an Array or implement IArrayable"); | ||
} | ||
@@ -111,0 +111,0 @@ return this; |
@@ -36,2 +36,3 @@ /* | ||
* @interface | ||
* @template I | ||
*/ | ||
@@ -48,3 +49,3 @@ var IArrayable = Interface.declare({ | ||
/** | ||
* @return {Array.<*>} | ||
* @return {Array.<I>} | ||
*/ | ||
@@ -51,0 +52,0 @@ toArray: function() {} |
@@ -100,6 +100,6 @@ /* | ||
changes.forEach(function(change) { | ||
if (change.removed) { | ||
if (change.removed && change.removed.length > 0) { | ||
_this.handleIndexesRemoved(change.index, change.removed.length); | ||
} | ||
if (change.addedCount) { | ||
if (change.addedCount > 0) { | ||
_this.handleIndexesAdded(change.index, change.addedCount); | ||
@@ -106,0 +106,0 @@ } |
@@ -93,11 +93,11 @@ /* | ||
* @private | ||
* @type {Object.<string, number>} | ||
* @type {number} | ||
*/ | ||
this.propertySkipCountMap = {}; | ||
this.propertyCount = 0; | ||
/** | ||
* @private | ||
* @type {number} | ||
* @type {Object.<string, number>} | ||
*/ | ||
this.propertyCount = 0; | ||
this.propertySkipCountMap = {}; | ||
}, | ||
@@ -141,2 +141,9 @@ | ||
/** | ||
* @return {number} | ||
*/ | ||
getIndex: function() { | ||
return this.index; | ||
}, | ||
/** | ||
* @return {Object.<string, V>} | ||
@@ -148,3 +155,24 @@ */ | ||
/** | ||
* @return {Array.<string>} | ||
*/ | ||
getProperties: function() { | ||
return this.properties; | ||
}, | ||
/** | ||
* @return {number} | ||
*/ | ||
getPropertyCount: function() { | ||
return this.propertyCount; | ||
}, | ||
/** | ||
* @return {Object.<string, number>} | ||
*/ | ||
getPropertySkipCountMap: function() { | ||
return this.propertySkipCountMap; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -158,2 +186,3 @@ // IIterator Implementation | ||
hasNext: function() { | ||
// console.log("ObjectIterator - hasNext this.index:", this.index, " this.propertyCount:", this.propertyCount); | ||
return (this.index < (this.propertyCount - 1)); | ||
@@ -160,0 +189,0 @@ }, |
@@ -15,2 +15,3 @@ /* | ||
//@Require('Notifier') | ||
//@Require('Object') | ||
@@ -29,2 +30,3 @@ | ||
var Notifier = bugpack.require('Notifier'); | ||
var Object = bugpack.require('Object'); | ||
@@ -65,12 +67,17 @@ | ||
if (!Array.getNotifier) { | ||
//if (!Array.getNotifier) { | ||
Array.getNotifier = function(object) { | ||
if (!object._notifier) { | ||
object._notifier = new Notifier(); | ||
Object.defineProperty(object, "_notifier", { | ||
value : new Notifier(), | ||
writable : true, | ||
enumerable : false, | ||
configurable : false | ||
}); | ||
} | ||
return object._notifier; | ||
} | ||
} | ||
}; | ||
//} | ||
if (!Array.observe) { | ||
//if (!Array.observe) { | ||
Array.observe = function(obj, callback, acceptList) { | ||
@@ -157,5 +164,5 @@ var notifier = Array.getNotifier(obj); | ||
}; | ||
} | ||
//} | ||
if (!Array.unobserve) { | ||
//if (!Array.unobserve) { | ||
Array.unobserve = function(obj, callback) { | ||
@@ -165,3 +172,3 @@ var notifier = Array.getNotifier(obj); | ||
}; | ||
} | ||
//} | ||
@@ -168,0 +175,0 @@ //------------------------------------------------------------------------------- |
@@ -108,3 +108,3 @@ /* | ||
*/ | ||
notifiy: function (changeObject) { | ||
notify: function (changeObject) { | ||
var changes = [changeObject]; | ||
@@ -111,0 +111,0 @@ this.observers.forEach(function(observer) { |
@@ -76,12 +76,17 @@ /* | ||
if (!Object.getNotifier) { | ||
//if (!Object.getNotifier) { | ||
Object.getNotifier = function(object) { | ||
if (!object._notifier) { | ||
object._notifier = new Notifier(); | ||
Object.defineProperty(object, "_notifier", { | ||
value : new Notifier(), | ||
writable : true, | ||
enumerable : false, | ||
configurable : false | ||
}); | ||
} | ||
return object._notifier; | ||
} | ||
} | ||
}; | ||
//} | ||
if (!Object.observe) { | ||
//if (!Object.observe) { | ||
Object.observe = function(obj, callback, acceptList) { | ||
@@ -91,5 +96,5 @@ var notifier = Object.getNotifier(obj); | ||
}; | ||
} | ||
//} | ||
if (!Object.unobserve) { | ||
//if (!Object.unobserve) { | ||
Object.unobserve = function(obj, callback) { | ||
@@ -99,3 +104,3 @@ var notifier = Object.getNotifier(obj); | ||
}; | ||
} | ||
//} | ||
@@ -102,0 +107,0 @@ |
@@ -123,4 +123,4 @@ /* | ||
clear: function() { | ||
this.keyValueHashTable = new HashTable(); | ||
this.valueKeyHashTable = new HashTable(); | ||
this.keyValueHashTable.clear(); | ||
this.valueKeyHashTable.clear() | ||
}, | ||
@@ -168,38 +168,2 @@ | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
getKeyArray: function() { | ||
return this.keyValueHashTable.getKeyArray(); | ||
}, | ||
/** | ||
* @return {Collection} | ||
*/ | ||
getKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.valueKeyHashTable.forEach(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
getValueArray: function() { | ||
return this.keyValueHashTable.getValueArray(); | ||
}, | ||
/** | ||
* @return {Collection} | ||
*/ | ||
getValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.keyValueHashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
}, | ||
/** | ||
* @return {boolean} | ||
@@ -229,3 +193,3 @@ */ | ||
if (Class.doesExtend(map, Map)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -236,3 +200,3 @@ var value = map.get(key); | ||
} else if (Class.doesExtend(map, DualMap)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -267,2 +231,38 @@ var value = map.getValue(key); | ||
return key; | ||
}, | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
toKeyArray: function() { | ||
return this.keyValueHashTable.toKeyArray(); | ||
}, | ||
/** | ||
* @return {Collection} | ||
*/ | ||
toKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.valueKeyHashTable.forEach(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
toValueArray: function() { | ||
return this.keyValueHashTable.toValueArray(); | ||
}, | ||
/** | ||
* @return {Collection} | ||
*/ | ||
toValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.keyValueHashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
} | ||
@@ -269,0 +269,0 @@ }); |
@@ -132,3 +132,3 @@ /* | ||
toArray: function() { | ||
return this.getValueArray(); | ||
return this.hashStore.toArray(); | ||
}, | ||
@@ -146,3 +146,3 @@ | ||
add: function(item) { | ||
this.hashStore.addValue(item); | ||
this.hashStore.add(item); | ||
return true; | ||
@@ -155,2 +155,5 @@ }, | ||
addAll: function(items) { | ||
if (Class.doesImplement(items, IArrayable) && !Class.doesImplement(items, ICollection)) { | ||
items = items.toArray(); | ||
} | ||
if (Class.doesImplement(items, ICollection) || TypeUtil.isArray(items)) { | ||
@@ -170,3 +173,3 @@ var _this = this; | ||
clear: function() { | ||
this.hashStore = new HashStore(); | ||
this.removeAll(this); | ||
}, | ||
@@ -179,3 +182,3 @@ | ||
contains: function(value) { | ||
return this.hashStore.hasValue(value); | ||
return this.hashStore.contains(value); | ||
}, | ||
@@ -196,3 +199,3 @@ | ||
if (Class.doesImplement(values, ICollection)) { | ||
valueArray = values.getValueArray(); | ||
valueArray = values.toArray(); | ||
} | ||
@@ -224,6 +227,6 @@ for (var i = 0, size = valueArray.length; i < size; i++) { | ||
if (collection.getCount() === this.getCount()) { | ||
var collectionValueArray = this.getValueArray(); | ||
var collectionValueArray = this.toArray(); | ||
for (var i1 = 0, size1 = collectionValueArray.length; i1 < size1; i1++) { | ||
var collectionValue = collectionValueArray[i1]; | ||
if (this.getValueCount(collectionValue) !== collection.getValueCount(collectionValue)) { | ||
if (this.countValue(collectionValue) !== collection.countValue(collectionValue)) { | ||
return false; | ||
@@ -241,24 +244,14 @@ } | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getCount: function() { | ||
return this.hashStore.getCount(); | ||
countValue: function(value) { | ||
return this.hashStore.countValue(value); | ||
}, | ||
/** | ||
* @return {Array.<I>} | ||
*/ | ||
getValueArray: function() { | ||
//NOTE BRN: The getValueArray method of HashStore already creates a new array | ||
return this.hashStore.getValueArray(); | ||
}, | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getValueCount: function(value) { | ||
return this.hashStore.getValueCount(value); | ||
getCount: function() { | ||
return this.hashStore.getCount(); | ||
}, | ||
@@ -278,3 +271,3 @@ | ||
remove: function(value) { | ||
return this.hashStore.removeValue(value); | ||
return this.hashStore.remove(value); | ||
}, | ||
@@ -381,3 +374,2 @@ | ||
Class.implement(Collection, IArrayable); | ||
Class.implement(Collection, ICollection); | ||
@@ -384,0 +376,0 @@ Class.implement(Collection, IIterable); |
@@ -123,4 +123,4 @@ /* | ||
clear: function() { | ||
this.keyValueHashTable = new HashTable(); | ||
this.valueKeyCollectionHashTable = new HashTable(); | ||
this.keyValueHashTable.clear(); | ||
this.valueKeyCollectionHashTable.clear(); | ||
}, | ||
@@ -168,34 +168,2 @@ | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
getKeyArray: function() { | ||
return this.keyValueHashTable.getKeyArray(); | ||
}, | ||
/** | ||
* @return {Collection.<*>} | ||
*/ | ||
getKeyCollection: function() { | ||
return new Collection(this.keyValueHashTable.getKeyArray()); | ||
}, | ||
/** | ||
* @return {Array.<*>} | ||
*/ | ||
getValueArray: function() { | ||
return this.keyValueHashTable.getValueArray(); | ||
}, | ||
/** | ||
* @return {Collection.<*>} | ||
*/ | ||
getValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.keyValueHashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
}, | ||
/** | ||
* @return {boolean} | ||
@@ -232,3 +200,3 @@ */ | ||
if (Class.doesExtend(map, Map)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -239,3 +207,3 @@ var value = map.get(key); | ||
} else if (Class.doesExtend(map, DualMap)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -277,2 +245,34 @@ var value = map.getValue(key); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array<*>} | ||
*/ | ||
toKeyArray: function() { | ||
return this.keyValueHashTable.toKeyArray(); | ||
}, | ||
/** | ||
* @return {Collection.<*>} | ||
*/ | ||
toKeyCollection: function() { | ||
return new Collection(this.keyValueHashTable.toKeyArray()); | ||
}, | ||
/** | ||
* @return {Array.<*>} | ||
*/ | ||
toValueArray: function() { | ||
return this.keyValueHashTable.toValueArray(); | ||
}, | ||
/** | ||
* @return {Collection.<*>} | ||
*/ | ||
toValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.keyValueHashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
} | ||
@@ -279,0 +279,0 @@ }); |
@@ -17,2 +17,3 @@ /* | ||
//@Require('HashStoreNode') | ||
//@Require('IArrayable') | ||
//@Require('IIterable') | ||
@@ -36,2 +37,3 @@ //@Require('Obj') | ||
var HashStoreNode = bugpack.require('HashStoreNode'); | ||
var IArrayable = bugpack.require('IArrayable'); | ||
var IIterable = bugpack.require('IIterable'); | ||
@@ -49,4 +51,4 @@ var Obj = bugpack.require('Obj'); | ||
* @extends {Obj} | ||
* @implements {IIterable.<V>} | ||
* @template V | ||
* @implements {IIterable.<I>} | ||
* @template I | ||
*/ | ||
@@ -83,3 +85,3 @@ var HashStore = Class.extend(Obj, { | ||
* @private | ||
* @type {Object.<string, HashStoreNode.<V>>} | ||
* @type {Object.<string, HashStoreNode.<I>>} | ||
*/ | ||
@@ -102,3 +104,3 @@ this.hashStoreNodeObject = {}; | ||
/** | ||
* @return {Object.<string, HashStoreNode.<V>>} | ||
* @return {Object.<string, HashStoreNode.<I>>} | ||
*/ | ||
@@ -111,16 +113,14 @@ getHashStoreNodeObject: function() { | ||
//------------------------------------------------------------------------------- | ||
// Convenience Methods | ||
// IArrayable Implementation | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
* @return {Array.<I>} | ||
*/ | ||
getValueCount: function(value) { | ||
var valueHashCode = Obj.hashCode(value); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, valueHashCode.toString()); | ||
if (hashStoreNode) { | ||
return hashStoreNode.getValueCount(value); | ||
} | ||
return 0; | ||
toArray: function() { | ||
var array = []; | ||
ObjectUtil.forInOwn(this.hashStoreNodeObject, function(valueHashCode, hashStoreNode) { | ||
array = array.concat(hashStoreNode.getItemArray()); | ||
}); | ||
return array; | ||
}, | ||
@@ -138,3 +138,3 @@ | ||
* | ||
* @param {function(V)} func | ||
* @param {function(I)} func | ||
*/ | ||
@@ -153,3 +153,3 @@ forEach: function(func) { | ||
* | ||
* @return {IIterator.<V>} | ||
* @return {IIterator.<I>} | ||
*/ | ||
@@ -166,12 +166,12 @@ iterator: function() { | ||
/** | ||
* @param {V} value | ||
* @param {I} item | ||
*/ | ||
addValue: function(value) { | ||
var valueHashCode = Obj.hashCode(value); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, valueHashCode.toString()); | ||
add: function(item) { | ||
var hashCode = Obj.hashCode(item); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, hashCode.toString()); | ||
if (!hashStoreNode) { | ||
hashStoreNode = new HashStoreNode(); | ||
this.hashStoreNodeObject[valueHashCode] = hashStoreNode; | ||
this.hashStoreNodeObject[hashCode] = hashStoreNode; | ||
} | ||
hashStoreNode.addValue(value); | ||
hashStoreNode.add(item); | ||
this.count++; | ||
@@ -181,23 +181,36 @@ }, | ||
/** | ||
* @return {Array.<V>} | ||
* | ||
*/ | ||
getValueArray: function() { | ||
var valueArray = []; | ||
ObjectUtil.forInOwn(this.hashStoreNodeObject, function(valueHashCode, hashStoreNode) { | ||
valueArray = valueArray.concat(hashStoreNode.getValueArray()); | ||
}); | ||
return valueArray; | ||
clear: function() { | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var item = iterator.next(); | ||
this.remove(item); | ||
} | ||
}, | ||
/** | ||
* @param {*} value | ||
* @param {*} item | ||
* @return {boolean} | ||
*/ | ||
hasValue: function(value) { | ||
contains: function(item) { | ||
var hashCode = Obj.hashCode(item); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, hashCode.toString()); | ||
if (hashStoreNode) { | ||
return hashStoreNode.contains(item); | ||
} | ||
return false; | ||
}, | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
countValue: function(value) { | ||
var valueHashCode = Obj.hashCode(value); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, valueHashCode.toString()); | ||
if (hashStoreNode) { | ||
return hashStoreNode.containsValue(value); | ||
return hashStoreNode.countValue(value); | ||
} | ||
return false; | ||
return 0; | ||
}, | ||
@@ -213,15 +226,15 @@ | ||
/** | ||
* @param {*} value | ||
* @param {*} item | ||
* @return {boolean} | ||
*/ | ||
removeValue: function(value) { | ||
var valueHashCode = Obj.hashCode(value); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, valueHashCode.toString()); | ||
remove: function(item) { | ||
var hashCode = Obj.hashCode(item); | ||
var hashStoreNode = ObjectUtil.getOwnProperty(this.hashStoreNodeObject, hashCode.toString()); | ||
var result = false; | ||
if (hashStoreNode) { | ||
result = hashStoreNode.removeValue(value); | ||
result = hashStoreNode.remove(item); | ||
if (result) { | ||
this.count--; | ||
if (hashStoreNode.getCount() === 0) { | ||
ObjectUtil.deleteProperty(this.hashStoreNodeObject, valueHashCode.toString()); | ||
ObjectUtil.deleteProperty(this.hashStoreNodeObject, hashCode.toString()); | ||
} | ||
@@ -239,2 +252,3 @@ } | ||
Class.implement(HashStore, IArrayable); | ||
Class.implement(HashStore, IIterable); | ||
@@ -241,0 +255,0 @@ |
@@ -39,3 +39,3 @@ /* | ||
* @extends {Obj} | ||
* @template V | ||
* @template I | ||
*/ | ||
@@ -67,9 +67,9 @@ var HashStoreNode = Class.extend(Obj, { | ||
*/ | ||
this.count = 0; | ||
this.count = 0; | ||
/** | ||
* @private | ||
* @type {Array.<V>} | ||
* @type {Array.<I>} | ||
*/ | ||
this.valueArray = []; | ||
this.itemArray = []; | ||
}, | ||
@@ -90,6 +90,6 @@ | ||
/** | ||
* @return {Array.<V>} | ||
* @return {Array.<I>} | ||
*/ | ||
getValueArray: function() { | ||
return this.valueArray; | ||
getItemArray: function() { | ||
return this.itemArray; | ||
}, | ||
@@ -99,22 +99,2 @@ | ||
//------------------------------------------------------------------------------- | ||
// Convenience Methods | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getValueCount: function(value) { | ||
var count = 0; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var valueArrayValue = this.valueArray[i]; | ||
if (Obj.equals(value, valueArrayValue)) { | ||
count++; | ||
} | ||
} | ||
return count; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// Obj Methods | ||
@@ -130,5 +110,5 @@ //------------------------------------------------------------------------------- | ||
if (this.getCount() === value.getCount()) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var valueArrayValue = this.valueArray[i]; | ||
if (!value.containsValue(valueArrayValue)) { | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
var itemArrayValue = this.itemArray[i]; | ||
if (!value.containsValue(itemArrayValue)) { | ||
return false; | ||
@@ -150,4 +130,4 @@ } | ||
output += " values:[\n"; | ||
this.valueArray.forEach(function(value) { | ||
output += value + ","; | ||
this.itemArray.forEach(function(item) { | ||
output += item + ","; | ||
}); | ||
@@ -165,6 +145,6 @@ output += " ]"; | ||
/** | ||
* @param {V} value | ||
* @param {I} item | ||
*/ | ||
addValue: function(value) { | ||
this.valueArray.push(value); | ||
add: function(item) { | ||
this.itemArray.push(item); | ||
this.count++; | ||
@@ -174,8 +154,8 @@ }, | ||
/** | ||
* @param {*} value | ||
* @param {*} item | ||
*/ | ||
containsValue: function(value) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var valueArrayValue = this.valueArray[i]; | ||
if (Obj.equals(value, valueArrayValue)) { | ||
contains: function(item) { | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
var itemArrayValue = this.itemArray[i]; | ||
if (Obj.equals(item, itemArrayValue)) { | ||
return true; | ||
@@ -189,9 +169,24 @@ } | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
countValue: function(value) { | ||
var count = 0; | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
var itemArrayValue = this.itemArray[i]; | ||
if (Obj.equals(value, itemArrayValue)) { | ||
count++; | ||
} | ||
} | ||
return count; | ||
}, | ||
/** | ||
* @param {*} item | ||
* @return {boolean} | ||
*/ | ||
removeValue: function(value) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var valueArrayValue = this.valueArray[i]; | ||
if (Obj.equals(value, valueArrayValue)) { | ||
this.valueArray.splice(i, 1); | ||
remove: function(item) { | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
var itemArrayValue = this.itemArray[i]; | ||
if (Obj.equals(item, itemArrayValue)) { | ||
this.itemArray.splice(i, 1); | ||
this.count--; | ||
@@ -198,0 +193,0 @@ return true; |
@@ -107,3 +107,3 @@ /* | ||
//------------------------------------------------------------------------------- | ||
// IIterable Implementation | ||
// IKeyValueIterable Implementation | ||
//------------------------------------------------------------------------------- | ||
@@ -160,2 +160,12 @@ | ||
/** | ||
* | ||
*/ | ||
clear: function() { | ||
var _this = this; | ||
this.forIn(function(key) { | ||
_this.remove(key); | ||
}); | ||
}, | ||
/** | ||
* @param {*} key | ||
@@ -208,24 +218,2 @@ * @return {boolean} | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
getKeyArray: function() { | ||
var keysArray = []; | ||
ObjectUtil.forInOwn(this.hashTableNodeObject, function(keyHashCode, hashTableNode) { | ||
keysArray = keysArray.concat(hashTableNode.getKeyArray()); | ||
}); | ||
return keysArray; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
getValueArray: function() { | ||
var valuesArray = []; | ||
ObjectUtil.forInOwn(this.hashTableNodeObject, function(keyHashCode, hashTableNode) { | ||
valuesArray = valuesArray.concat(hashTableNode.getValueArray()); | ||
}); | ||
return valuesArray; | ||
}, | ||
/** | ||
* @return {boolean} | ||
@@ -274,2 +262,24 @@ */ | ||
return returnValue; | ||
}, | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
toKeyArray: function() { | ||
var keysArray = []; | ||
ObjectUtil.forInOwn(this.hashTableNodeObject, function(keyHashCode, hashTableNode) { | ||
keysArray = keysArray.concat(hashTableNode.getKeyArray()); | ||
}); | ||
return keysArray; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
toValueArray: function() { | ||
var valuesArray = []; | ||
ObjectUtil.forInOwn(this.hashTableNodeObject, function(keyHashCode, hashTableNode) { | ||
valuesArray = valuesArray.concat(hashTableNode.getValueArray()); | ||
}); | ||
return valuesArray; | ||
} | ||
@@ -276,0 +286,0 @@ }); |
@@ -66,3 +66,3 @@ /* | ||
*/ | ||
this.count = 0; | ||
this.count = 0; | ||
@@ -73,3 +73,3 @@ /** | ||
*/ | ||
this.hashTableKeyArray = []; | ||
this.keyArray = []; | ||
@@ -80,3 +80,3 @@ /** | ||
*/ | ||
this.hashTableValueArray = []; | ||
this.valueArray = []; | ||
}, | ||
@@ -99,23 +99,4 @@ | ||
*/ | ||
getHashTableKeyArray: function() { | ||
return this.hashTableKeyArray; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
getHashTableValueArray: function() { | ||
return this.hashTableValueArray; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// Convenience Methods | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
getKeyArray: function() { | ||
return this.hashTableKeyArray; | ||
return this.keyArray; | ||
}, | ||
@@ -127,3 +108,3 @@ | ||
getValueArray: function() { | ||
return this.hashTableValueArray; | ||
return this.valueArray; | ||
}, | ||
@@ -142,9 +123,9 @@ | ||
output += " count:" + this.getCount() + ",\n"; | ||
output += " hashTableKeyArray:[\n"; | ||
this.hashTableKeyArray.forEach(function(value) { | ||
output += " keyArray:[\n"; | ||
this.keyArray.forEach(function(value) { | ||
output += value.toString() + ","; | ||
}); | ||
output += " ]"; | ||
output += " hashTableValueArray:[\n"; | ||
this.hashTableValueArray.forEach(function(value) { | ||
output += " valueArray:[\n"; | ||
this.valueArray.forEach(function(value) { | ||
output += value.toString() + ","; | ||
@@ -167,4 +148,4 @@ }); | ||
containsKey: function(key) { | ||
for (var i = 0, size = this.hashTableKeyArray.length; i < size; i++) { | ||
var hashTableKey = this.hashTableKeyArray[i]; | ||
for (var i = 0, size = this.keyArray.length; i < size; i++) { | ||
var hashTableKey = this.keyArray[i]; | ||
if (Obj.equals(key, hashTableKey)) { | ||
@@ -182,4 +163,4 @@ return true; | ||
containsValue: function(value) { | ||
for (var i = 0, size = this.hashTableValueArray.length; i < size; i++) { | ||
var hashTableValue = this.hashTableValueArray[i]; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var hashTableValue = this.valueArray[i]; | ||
if (Obj.equals(value, hashTableValue)) { | ||
@@ -197,6 +178,6 @@ return true; | ||
get: function(key) { | ||
for (var i = 0, size = this.hashTableKeyArray.length; i < size; i++) { | ||
var hashTableKey = this.hashTableKeyArray[i]; | ||
for (var i = 0, size = this.keyArray.length; i < size; i++) { | ||
var hashTableKey = this.keyArray[i]; | ||
if (Obj.equals(key, hashTableKey)) { | ||
return this.hashTableValueArray[i]; | ||
return this.valueArray[i]; | ||
} | ||
@@ -213,7 +194,7 @@ } | ||
put: function(key, value) { | ||
for (var i = 0, size = this.hashTableKeyArray.length; i < size; i++) { | ||
var hashTableKey = this.hashTableKeyArray[i]; | ||
for (var i = 0, size = this.keyArray.length; i < size; i++) { | ||
var hashTableKey = this.keyArray[i]; | ||
if (Obj.equals(key, hashTableKey)) { | ||
var previousValue = this.hashTableValueArray[i]; | ||
this.hashTableValueArray[i] = value; | ||
var previousValue = this.valueArray[i]; | ||
this.valueArray[i] = value; | ||
return previousValue; | ||
@@ -225,4 +206,4 @@ } | ||
this.hashTableKeyArray.push(key); | ||
this.hashTableValueArray.push(value); | ||
this.keyArray.push(key); | ||
this.valueArray.push(value); | ||
this.count++; | ||
@@ -237,8 +218,8 @@ return undefined; | ||
remove: function(key) { | ||
for (var i = 0, size = this.hashTableKeyArray.length; i < size; i++) { | ||
var hashTableKey = this.hashTableKeyArray[i]; | ||
for (var i = 0, size = this.keyArray.length; i < size; i++) { | ||
var hashTableKey = this.keyArray[i]; | ||
if (Obj.equals(key, hashTableKey)) { | ||
var removedValue = this.hashTableValueArray[i]; | ||
this.hashTableKeyArray.splice(i, 1); | ||
this.hashTableValueArray.splice(i, 1); | ||
var removedValue = this.valueArray[i]; | ||
this.keyArray.splice(i, 1); | ||
this.valueArray.splice(i, 1); | ||
this.count--; | ||
@@ -245,0 +226,0 @@ return removedValue; |
@@ -14,2 +14,3 @@ /* | ||
//@Require('IArrayable') | ||
//@Require('Interface') | ||
@@ -28,2 +29,3 @@ | ||
var IArrayable = bugpack.require('IArrayable'); | ||
var Interface = bugpack.require('Interface'); | ||
@@ -38,5 +40,6 @@ | ||
* @interface | ||
* @extends {IArrayable.<I>} | ||
* @template I | ||
*/ | ||
var ICollection = Interface.declare({ | ||
var ICollection = Interface.extend(IArrayable, { | ||
@@ -90,16 +93,11 @@ _name: "ICollection", | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getCount: function() {}, | ||
countValue: function(value) {}, | ||
/** | ||
* @return {Array.<I>} | ||
*/ | ||
getValueArray: function() {}, | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getValueCount: function(value) {}, | ||
getCount: function() {}, | ||
@@ -106,0 +104,0 @@ /** |
@@ -14,2 +14,3 @@ /* | ||
//@Require('IObjectable') | ||
//@Require('Interface') | ||
@@ -28,3 +29,4 @@ | ||
var Interface = bugpack.require('Interface'); | ||
var IObjectable = bugpack.require('IObjectable'); | ||
var Interface = bugpack.require('Interface'); | ||
@@ -38,2 +40,3 @@ | ||
* @interface | ||
* @extends {IObjectable.<K, V>} | ||
* @template K, V | ||
@@ -79,45 +82,43 @@ */ | ||
/** | ||
* @return {Array.<K>} | ||
* @return {boolean} | ||
*/ | ||
getKeyArray: function() {}, | ||
isEmpty: function() {}, | ||
/** | ||
* @return {ICollection.<K>} | ||
* @param {K} key | ||
* @param {V} value | ||
* @return {V} | ||
*/ | ||
getKeyCollection: function() {}, | ||
put: function(key, value) {}, | ||
/** | ||
* @return {Array.<V>} | ||
* @param {(IMap.<K, V> | Object.<K, V>)} map | ||
*/ | ||
getValueArray: function() {}, | ||
putAll: function(map) {}, | ||
/** | ||
* @return {ICollection.<V>} | ||
* @param {*} key | ||
* @return {V} | ||
*/ | ||
getValueCollection: function() {}, | ||
remove: function(key) {}, | ||
/** | ||
* @return {boolean} | ||
* @return {Array.<K>} | ||
*/ | ||
isEmpty: function() {}, | ||
toKeyArray: function() {}, | ||
/** | ||
* @param {K} key | ||
* @param {V} value | ||
* @return {V} | ||
* @return {ICollection.<K>} | ||
*/ | ||
put: function(key, value) {}, | ||
toKeyCollection: function() {}, | ||
/** | ||
* @param {(IMap.<K, V> | Object.<K, V>)} map | ||
* @return {Array.<V>} | ||
*/ | ||
putAll: function(map) {}, | ||
toValueArray: function() {}, | ||
/** | ||
* @param {*} key | ||
* @return {V} | ||
* @return {ICollection.<V>} | ||
*/ | ||
remove: function(key) { | ||
return this.hashTable.remove(key); | ||
} | ||
toValueCollection: function() {} | ||
}); | ||
@@ -124,0 +125,0 @@ |
@@ -48,3 +48,3 @@ /* | ||
* @implements {IIterator.<V>} | ||
* @template V | ||
* @template I | ||
*/ | ||
@@ -62,3 +62,3 @@ var HashStoreIterator = Class.extend(Obj, { | ||
* @constructs | ||
* @param {HashStore.<V>} hashStore | ||
* @param {HashStore.<I>} hashStore | ||
*/ | ||
@@ -82,11 +82,11 @@ _constructor: function(hashStore) { | ||
* @private | ||
* @type {ObjectIterator.<HashStoreNode.<V>>} | ||
* @type {ArrayIterator.<V>} | ||
*/ | ||
this.hashStoreNodeObjectIterator = new ObjectIterator(this.hashStore.getHashStoreNodeObject()); | ||
this.hashStoreNodeArrayIterator = null; | ||
/** | ||
* @private | ||
* @type {ArrayIterator.<V>} | ||
* @type {ObjectIterator.<HashStoreNode.<V>>} | ||
*/ | ||
this.hashStoreNodeArrayIterator = null; | ||
this.hashStoreNodeObjectIterator = new ObjectIterator(this.hashStore.getHashStoreNodeObject()); | ||
}, | ||
@@ -96,2 +96,28 @@ | ||
//------------------------------------------------------------------------------- | ||
// Getters and Setters | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @return {HashStore.<V>} | ||
*/ | ||
getHashStore: function() { | ||
return this.hashStore; | ||
}, | ||
/** | ||
* @return {ArrayIterator.<V>} | ||
*/ | ||
getHashStoreNodeArrayIterator: function() { | ||
return this.hashStoreNodeArrayIterator | ||
}, | ||
/** | ||
* @return {ObjectIterator.<HashStoreNode.<V>>} | ||
*/ | ||
getHashStoreNodeObjectIterator: function() { | ||
return this.hashStoreNodeObjectIterator; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// Public Methods | ||
@@ -105,6 +131,8 @@ //------------------------------------------------------------------------------- | ||
if (this.hashStoreNodeObjectIterator.hasNext()) { | ||
//console.log("this.hashStoreNodeObjectIterator.hasNext():", true); | ||
return true; | ||
} | ||
if (this.hashStoreNodeArrayIterator) { | ||
return this.hashStoreNodeArrayIterator.hasNext() | ||
//console.log("this.hashStoreNodeArrayIterator.hasNext():", this.hashStoreNodeArrayIterator.hasNext()); | ||
return this.hashStoreNodeArrayIterator.hasNext(); | ||
} | ||
@@ -120,3 +148,3 @@ return false; | ||
var hashStoreNodeObject = this.hashStoreNodeObjectIterator.next(); | ||
this.hashStoreNodeArrayIterator = new ArrayIterator(hashStoreNodeObject.getValueArray()); | ||
this.hashStoreNodeArrayIterator = new ArrayIterator(hashStoreNodeObject.getItemArray()); | ||
return this.hashStoreNodeArrayIterator.next(); | ||
@@ -123,0 +151,0 @@ } else { |
@@ -15,2 +15,3 @@ /* | ||
//@Require('ArgumentBug') | ||
//@Require('ArrayIterator') | ||
//@Require('Class') | ||
@@ -20,2 +21,3 @@ //@Require('Collection') | ||
//@Require('ICollection') | ||
//@Require('IIndexValueIterable') | ||
//@Require('IList') | ||
@@ -36,10 +38,12 @@ //@Require('Obj') | ||
var ArgumentBug = bugpack.require('ArgumentBug'); | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var ICollection = bugpack.require('ICollection'); | ||
var IList = bugpack.require('IList'); | ||
var Obj = bugpack.require('Obj'); | ||
var TypeUtil = bugpack.require('TypeUtil'); | ||
var ArgumentBug = bugpack.require('ArgumentBug'); | ||
var ArrayIterator = bugpack.require('ArrayIterator'); | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var ICollection = bugpack.require('ICollection'); | ||
var IIndexValueIterable = bugpack.require('IIndexValueIterable'); | ||
var IList = bugpack.require('IList'); | ||
var Obj = bugpack.require('Obj'); | ||
var TypeUtil = bugpack.require('TypeUtil'); | ||
@@ -53,3 +57,4 @@ | ||
* @class | ||
* @extends {Collection} | ||
* @extends {Collection.<I>} | ||
* @implements {IIndexValueIterable.<I>} | ||
* @implements {IList.<I>} | ||
@@ -69,5 +74,4 @@ * @template I | ||
* @constructs | ||
* @param {(Collection.<*> | Array.<*>)} items | ||
*/ | ||
_constructor: function(items) { | ||
_constructor: function() { | ||
@@ -83,5 +87,5 @@ this._super(); | ||
* @private | ||
* @type {Array.<*>} | ||
* @type {Array.<I>} | ||
*/ | ||
this.valueArray = []; | ||
this.itemArray = []; | ||
}, | ||
@@ -95,7 +99,6 @@ | ||
/** | ||
* @override | ||
* @return {Array} Array is in the same order as the list | ||
* @return {Array.<I>} Array is in the same order as the list | ||
*/ | ||
getValueArray: function() { | ||
return Obj.clone(this.valueArray); | ||
getItemArray: function() { | ||
return this.itemArray; | ||
}, | ||
@@ -135,3 +138,3 @@ | ||
this._super(item); | ||
this.valueArray.push(item); | ||
this.itemArray.push(item); | ||
return true; | ||
@@ -141,7 +144,13 @@ }, | ||
/** | ||
* | ||
* Removes the FIRST occurrence of value from the list | ||
* @param {*} value | ||
* @return {boolean} | ||
*/ | ||
clear: function() { | ||
this._super(); | ||
this.valueArray = []; | ||
remove: function(value) { | ||
if (this.contains(value)) { | ||
var index = this.indexOfFirst(value); | ||
this.removeAt(index); | ||
return true; | ||
} | ||
return false; | ||
}, | ||
@@ -151,7 +160,22 @@ | ||
* @override | ||
* @return {Array.<>} | ||
*/ | ||
toArray: function() { | ||
return Obj.clone(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// IIndexValueIterable Implementation | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @override | ||
* @param {function(I, number)} func | ||
*/ | ||
forEach: function(func) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
func(this.valueArray[i], i); | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.value, indexValuePair.index); | ||
} | ||
@@ -161,16 +185,21 @@ }, | ||
/** | ||
* Removes the FIRST occurrence of value from the list | ||
* @param {*} value | ||
* @return {boolean} | ||
* @param {function(number, I)} func | ||
*/ | ||
remove: function(value) { | ||
if (this.contains(value)) { | ||
var index = this.indexOfFirst(value); | ||
this.removeAt(index); | ||
return true; | ||
forIn: function(func) { | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.index, indexValuePair.value); | ||
} | ||
return false; | ||
}, | ||
/** | ||
* @override | ||
* @return {IIndexValueIterator.<V>} | ||
*/ | ||
iterator: function() { | ||
return new ArrayIterator(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -190,4 +219,4 @@ // IList Implementation | ||
if (index <= this.getCount()) { | ||
this.getHashStore().addValue(item); | ||
this.valueArray.splice(index, 0, item); | ||
this.getHashStore().add(item); | ||
this.itemArray.splice(index, 0, item); | ||
} else { | ||
@@ -224,3 +253,3 @@ throw new Exception("IndexOutOfBounds", {}, "index was out of bounds"); | ||
if (index < this.getCount()) { | ||
return this.valueArray[index]; | ||
return this.itemArray[index]; | ||
} else { | ||
@@ -236,4 +265,4 @@ throw new Exception("IndexOutOfBounds", {}, "index was out of bounds"); | ||
indexOfFirst: function(value) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
if (Obj.equals(this.valueArray[i], value)) { | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
if (Obj.equals(this.itemArray[i], value)) { | ||
return i; | ||
@@ -250,4 +279,4 @@ } | ||
indexOfLast: function(value) { | ||
for (var size = this.valueArray.length, i = size - 1; i >= 0; i--) { | ||
if (Obj.equals(this.valueArray[i], value)) { | ||
for (var size = this.itemArray.length, i = size - 1; i >= 0; i--) { | ||
if (Obj.equals(this.itemArray[i], value)) { | ||
return i; | ||
@@ -263,3 +292,3 @@ } | ||
pop: function() { | ||
var lastIndex = this.valueArray.length - 1; | ||
var lastIndex = this.itemArray.length - 1; | ||
return this.removeAt(lastIndex); | ||
@@ -288,5 +317,5 @@ }, | ||
var value = this.getAt(index); | ||
var result = this.getHashStore().removeValue(value); | ||
var result = this.getHashStore().remove(value); | ||
if (result) { | ||
this.valueArray.splice(index, 1); | ||
this.itemArray.splice(index, 1); | ||
} | ||
@@ -345,2 +374,3 @@ return value; | ||
Class.implement(List, IIndexValueIterable); | ||
Class.implement(List, IList); | ||
@@ -347,0 +377,0 @@ |
@@ -164,3 +164,3 @@ /* | ||
clear: function() { | ||
this.hashTable = new HashTable(); | ||
this.hashTable.clear(); | ||
}, | ||
@@ -200,38 +200,2 @@ | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
getKeyArray: function() { | ||
return this.hashTable.getKeyArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
getKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.hashTable.getKeyArray().forEach(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
getValueArray: function() { | ||
return this.hashTable.getValueArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
getValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.hashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
}, | ||
/** | ||
* @return {boolean} | ||
@@ -258,3 +222,3 @@ */ | ||
if (Class.doesImplement(map, IMap)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -279,3 +243,39 @@ var value = map.get(key); | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
toKeyArray: function() { | ||
return this.hashTable.toKeyArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
toKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.hashTable.toKeyArray().forEach(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
toValueArray: function() { | ||
return this.hashTable.toValueArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
toValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.hashTable.forEach(function(value) { | ||
valueCollection.add(value); | ||
}); | ||
return valueCollection; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -291,3 +291,3 @@ // IObjectable Implementation | ||
var object = {}; | ||
var keys = this.getKeyArray(); | ||
var keys = this.toKeyArray(); | ||
keys.forEach(function(key){ | ||
@@ -311,3 +311,2 @@ var stringKey = key; | ||
Class.implement(Map, IMap); | ||
Class.implement(Map, IObjectable); | ||
@@ -314,0 +313,0 @@ |
@@ -93,5 +93,5 @@ /* | ||
containsValue: function(value) { | ||
var valueArray = this.getHashTable().getValueArray(); | ||
for (var i = 0, size = valueArray.length; i < size; i++) { | ||
var valueCollection = valueArray[i]; | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var valueCollection = iterator.nextValue(); | ||
if (valueCollection.contains(value)) { | ||
@@ -130,35 +130,2 @@ return true; | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
getKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.getHashTable().getKeyArray().forEach(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
getValueArray: function() { | ||
var valueArray = []; | ||
this.getHashTable().forEach(function(valueSet) { | ||
valueArray = valueArray.concat(valueSet.getValueArray()); | ||
}); | ||
return valueArray; | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
getValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.getHashTable().forEach(function(valueSet) { | ||
valueCollection.addAll(valueSet); | ||
}); | ||
return valueCollection; | ||
}, | ||
/** | ||
* @param {K} key | ||
@@ -184,3 +151,3 @@ * @param {V} value | ||
if (Class.doesImplement(map, IMap)) { | ||
map.getKeyArray().forEach(function(key) { | ||
map.toKeyArray().forEach(function(key) { | ||
var value = map.get(key); | ||
@@ -190,3 +157,3 @@ _this.put(key, value); | ||
} else if (Class.doesImplement(map, IMultiMap)) { | ||
map.getKeyArray().forEach(function(key) { | ||
map.toKeyArray().forEach(function(key) { | ||
var valueCollection = map.get(key); | ||
@@ -225,2 +192,35 @@ valueCollection.forEach(function(value) { | ||
return result; | ||
}, | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
toKeyCollection: function() { | ||
var keyCollection = new Collection(); | ||
this.forIn(function(key) { | ||
keyCollection.add(key); | ||
}); | ||
return keyCollection; | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
toValueArray: function() { | ||
var valueArray = []; | ||
this.forEach(function(valueCollection) { | ||
valueArray = valueArray.concat(valueCollection.toValueArray()); | ||
}); | ||
return valueArray; | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
toValueCollection: function() { | ||
var valueCollection = new Collection(); | ||
this.getHashTable().forEach(function(valueSet) { | ||
valueCollection.addAll(valueSet); | ||
}); | ||
return valueCollection; | ||
} | ||
@@ -227,0 +227,0 @@ }); |
@@ -14,5 +14,7 @@ /* | ||
//@Require('ArrayIterator') | ||
//@Require('Class') | ||
//@Require('Collection') | ||
//@Require('Exception') | ||
//@Require('IIndexValueIterable') | ||
//@Require('Obj') | ||
@@ -31,6 +33,8 @@ | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var Obj = bugpack.require('Obj'); | ||
var ArrayIterator = bugpack.require('ArrayIterator'); | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var IIndexValueIterable = bugpack.require('IIndexValueIterable'); | ||
var Obj = bugpack.require('Obj'); | ||
@@ -44,3 +48,5 @@ | ||
* @class | ||
* @extends {Collection} | ||
* @extends {Collection.<I>} | ||
* @implements {IIndexValueIterable.<I>} | ||
* @template I | ||
*/ | ||
@@ -58,5 +64,4 @@ var Queue = Class.extend(Collection, { | ||
* @constructs | ||
* @param {(Collection.<*> | Array.<*>)} items | ||
*/ | ||
_constructor: function(items) { | ||
_constructor: function() { | ||
@@ -72,5 +77,5 @@ this._super(); | ||
* @private | ||
* @type {Array.<*>} | ||
* @type {Array.<I>} | ||
*/ | ||
this.valueArray = []; | ||
this.itemArray = []; | ||
}, | ||
@@ -84,11 +89,6 @@ | ||
/** | ||
* @override | ||
* @return {Array} Array is in the same order as the queue | ||
* @return {Array.<I>} | ||
*/ | ||
getValueArray: function() { | ||
var valueArray = []; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
valueArray.push(this.valueArray[i]); | ||
} | ||
return valueArray; | ||
getItemArray: function() { | ||
return this.itemArray; | ||
}, | ||
@@ -102,3 +102,3 @@ | ||
/** | ||
* @return {Queue} | ||
* @return {Queue.<I>} | ||
*/ | ||
@@ -117,24 +117,46 @@ clone: function() { | ||
/** | ||
* @param {I} item | ||
*/ | ||
add: function(item) { | ||
this._super(item); | ||
this.itemArray.push(item); | ||
}, | ||
/** | ||
* Removes the FIRST occurrence of value from the queue | ||
* @override | ||
* @param {*} value | ||
* @return {boolean} | ||
*/ | ||
add: function(value) { | ||
this._super(value); | ||
this.valueArray.push(value); | ||
remove: function(value) { | ||
if (this.contains(value)) { | ||
var index = this.indexOfFirst(value); | ||
this.removeAt(index); | ||
return true; | ||
} | ||
return false; | ||
}, | ||
/** | ||
* | ||
* @override | ||
* @return {Array.<I>} | ||
*/ | ||
clear: function() { | ||
this._super(); | ||
this.valueArray = []; | ||
toArray: function() { | ||
return Obj.clone(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// IIndexValueIterable Implementation | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @override | ||
* @param {function(*)} func | ||
* @param {function(I, number)} func | ||
*/ | ||
forEach: function(func) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
func(this.valueArray[i]); | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.value, indexValuePair.index); | ||
} | ||
@@ -144,17 +166,21 @@ }, | ||
/** | ||
* Removes the FIRST occurrence of value from the queue | ||
* @override | ||
* @param {*} value | ||
* @return {boolean} | ||
* @param {function(number, I)} func | ||
*/ | ||
remove: function(value) { | ||
if (this.contains(value)) { | ||
var index = this.indexOfFirst(value); | ||
this.removeAt(index); | ||
return true; | ||
forIn: function(func) { | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.index, indexValuePair.value); | ||
} | ||
return false; | ||
}, | ||
/** | ||
* @override | ||
* @return {IIndexValueIterator.<I>} | ||
*/ | ||
iterator: function() { | ||
return new ArrayIterator(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -165,3 +191,3 @@ // Public Methods | ||
/** | ||
* @return {*} | ||
* @return {I} | ||
*/ | ||
@@ -177,6 +203,6 @@ dequeue: function() { | ||
/** | ||
* @param {*} value | ||
* @param {I} item | ||
*/ | ||
enqueue: function(value) { | ||
this.add(value); | ||
enqueue: function(item) { | ||
this.add(item); | ||
}, | ||
@@ -192,7 +218,7 @@ | ||
* @param {number} index | ||
* @return {*} | ||
* @return {I} | ||
*/ | ||
getAt: function(index) { | ||
if (index < this.getCount()) { | ||
return this.valueArray[index]; | ||
return this.itemArray[index]; | ||
} else { | ||
@@ -209,4 +235,4 @@ throw new Exception("IndexOutOfBounds", {}, "Index out of bounds"); | ||
indexOfFirst: function(value) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
if (Obj.equals(this.valueArray[i], value)) { | ||
for (var i = 0, size = this.itemArray.length; i < size; i++) { | ||
if (Obj.equals(this.itemArray[i], value)) { | ||
return i; | ||
@@ -221,9 +247,9 @@ } | ||
* @param {number} index | ||
* @return {*} The removed value | ||
* @return {I} The removed value | ||
*/ | ||
removeAt: function(index) { | ||
var value = this.getAt(index); | ||
var result = this.getHashStore().removeValue(value); | ||
var result = this.getHashStore().remove(value); | ||
if (result) { | ||
this.valueArray.splice(index, 1); | ||
this.itemArray.splice(index, 1); | ||
} | ||
@@ -236,2 +262,9 @@ return value; | ||
//------------------------------------------------------------------------------- | ||
// Implement Interfaces | ||
//------------------------------------------------------------------------------- | ||
Class.implement(Queue, IIndexValueIterable); | ||
//------------------------------------------------------------------------------- | ||
// Exports | ||
@@ -238,0 +271,0 @@ //------------------------------------------------------------------------------- |
@@ -86,4 +86,4 @@ /* | ||
add: function(value) { | ||
if (!this.getHashStore().hasValue(value)) { | ||
this.getHashStore().addValue(value); | ||
if (!this.getHashStore().contains(value)) { | ||
this.getHashStore().add(value); | ||
return true; | ||
@@ -90,0 +90,0 @@ } |
@@ -14,5 +14,7 @@ /* | ||
//@Require('ArrayIterator') | ||
//@Require('Class') | ||
//@Require('Collection') | ||
//@Require('Exception') | ||
//@Require('IIndexValueIterable') | ||
//@Require('Obj') | ||
@@ -31,6 +33,8 @@ | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var Obj = bugpack.require('Obj'); | ||
var ArrayIterator = bugpack.require('ArrayIterator'); | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var IIndexValueIterable = bugpack.require('IIndexValueIterable'); | ||
var Obj = bugpack.require('Obj'); | ||
@@ -45,3 +49,3 @@ | ||
* @extends {Collection} | ||
* @template C | ||
* @template I | ||
*/ | ||
@@ -59,5 +63,4 @@ var Stack = Class.extend(Collection, { | ||
* @constructs | ||
* @param {(Collection.<*> | Array.<*>)} items | ||
*/ | ||
_constructor: function(items) { | ||
_constructor: function() { | ||
@@ -73,5 +76,5 @@ this._super(); | ||
* @private | ||
* @type {Array.<C>} | ||
* @type {Array.<I>} | ||
*/ | ||
this.valueArray = []; | ||
this.itemArray = []; | ||
}, | ||
@@ -85,11 +88,6 @@ | ||
/** | ||
* @override | ||
* @return {Array.<C>} Array is in the same order as the queue | ||
* @return {Array.<I>} Array is in the same order as the queue | ||
*/ | ||
getValueArray: function() { | ||
var valueArray = []; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
valueArray.push(this.valueArray[i]); | ||
} | ||
return valueArray; | ||
getItemArray: function() { | ||
return this.itemArray; | ||
}, | ||
@@ -124,3 +122,3 @@ | ||
/** | ||
* @param {C} value | ||
* @param {I} value | ||
* @return {boolean} | ||
@@ -130,3 +128,3 @@ */ | ||
this._super(value); | ||
this.valueArray.push(value); | ||
this.itemArray.push(value); | ||
return true; | ||
@@ -136,12 +134,2 @@ }, | ||
/** | ||
* @override | ||
* @param {function(C)} func | ||
*/ | ||
forEach: function(func) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
func(this.valueArray[i]); | ||
} | ||
}, | ||
/** | ||
* Removes the FIRST occurrence of value from the stack | ||
@@ -160,4 +148,48 @@ * @param {*} value | ||
/** | ||
* @override | ||
* @return {Array.<I>} | ||
*/ | ||
toArray: function() { | ||
return Obj.clone(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// IIndexValueIterable Implementation | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @override | ||
* @param {function(I, number)} func | ||
*/ | ||
forEach: function(func) { | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.value, indexValuePair.index); | ||
} | ||
}, | ||
/** | ||
* @param {function(number, I)} func | ||
*/ | ||
forIn: function(func) { | ||
var iterator = this.iterator(); | ||
while (iterator.hasNext()) { | ||
var indexValuePair = iterator.nextIndexValuePair(); | ||
func(indexValuePair.index, indexValuePair.value); | ||
} | ||
}, | ||
/** | ||
* @override | ||
* @return {IIndexValueIterator.<I>} | ||
*/ | ||
iterator: function() { | ||
return new ArrayIterator(this.itemArray); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// Public Methods | ||
@@ -167,3 +199,3 @@ //------------------------------------------------------------------------------- | ||
/** | ||
* @return {*} | ||
* @return {I} | ||
*/ | ||
@@ -180,6 +212,6 @@ pop: function() { | ||
/** | ||
* @param {*} value | ||
* @param {I} item | ||
*/ | ||
push: function(value) { | ||
this.add(value); | ||
push: function(item) { | ||
this.add(item); | ||
}, | ||
@@ -195,7 +227,7 @@ | ||
* @param {number} index | ||
* @return {*} | ||
* @return {I} | ||
*/ | ||
getAt: function(index) { | ||
if (index < this.getCount()) { | ||
return this.valueArray[index]; | ||
return this.itemArray[index]; | ||
} else { | ||
@@ -212,4 +244,4 @@ throw new Exception("IndexOutOfBounds", {}, "Index out of bounds"); | ||
indexOfLast: function(value) { | ||
for (var i = this.valueArray.length - 1; i >= 0; i--) { | ||
if (Obj.equals(this.valueArray[i], value)) { | ||
for (var i = this.itemArray.length - 1; i >= 0; i--) { | ||
if (Obj.equals(this.itemArray[i], value)) { | ||
return i; | ||
@@ -224,9 +256,9 @@ } | ||
* @param {number} index | ||
* @return {*} The removed value | ||
* @return {I} The removed item | ||
*/ | ||
removeAt: function(index) { | ||
var value = this.getAt(index); | ||
var result = this.getHashStore().removeValue(value); | ||
var result = this.getHashStore().remove(value); | ||
if (result) { | ||
this.valueArray.splice(index, 1); | ||
this.itemArray.splice(index, 1); | ||
} | ||
@@ -239,2 +271,9 @@ return value; | ||
//------------------------------------------------------------------------------- | ||
// Implement Interfaces | ||
//------------------------------------------------------------------------------- | ||
Class.implement(Stack, IIndexValueIterable); | ||
//------------------------------------------------------------------------------- | ||
// Exports | ||
@@ -241,0 +280,0 @@ //------------------------------------------------------------------------------- |
@@ -43,3 +43,4 @@ /* | ||
* @extends {Obj} | ||
* @implements {IArrayable} | ||
* @implements {IArrayable.<A|B>} | ||
* @template A, B | ||
*/ | ||
@@ -57,6 +58,4 @@ var UnorderedPair = Class.extend(Obj, { | ||
* @constructs | ||
* @param {*} a | ||
* @param {*} b | ||
*/ | ||
_constructor: function(a ,b) { | ||
_constructor: function() { | ||
@@ -72,15 +71,25 @@ this._super(); | ||
* @private | ||
* @type {Collection.<*>} | ||
* @type {Collection.<A|B>} | ||
*/ | ||
this.pairCollection = new Collection(); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
// Add Arguments to Collection | ||
//------------------------------------------------------------------------------- | ||
//------------------------------------------------------------------------------- | ||
// Init Methods | ||
//------------------------------------------------------------------------------- | ||
/** | ||
* @param {A} a | ||
* @param {B} b | ||
* @return {UnorderedPair.<A, B>} | ||
*/ | ||
init: function(a, b) { | ||
this._super(); | ||
this.pairCollection.addAll([a, b]); | ||
return this; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -91,6 +100,6 @@ // Getters and Setters | ||
/** | ||
* @return {Array.<*>} | ||
* @return {Collection.<A|B>} | ||
*/ | ||
getValueArray: function() { | ||
return this.pairCollection.getValueArray(); | ||
getPairCollection: function() { | ||
return this.pairCollection; | ||
}, | ||
@@ -105,6 +114,6 @@ | ||
* @override | ||
* @return (Array) | ||
* @return (Array.<A|B>) | ||
*/ | ||
toArray: function() { | ||
return this.getValueArray(); | ||
return this.pairCollection.toArray(); | ||
}, | ||
@@ -118,3 +127,3 @@ | ||
/** | ||
* @return {UnorderedPair.<*>} | ||
* @return {UnorderedPair.<A, B>} | ||
*/ | ||
@@ -142,3 +151,4 @@ clone: function() { | ||
if (!this._hashCode) { | ||
this._hashCode = Obj.hashCode("[GraphNode]" + Obj.hashCode(this.value)); | ||
var pairArray = this.toArray(); | ||
this._hashCode = Obj.hashCode("[UnorderedPair]" + (Obj.hashCode(pairArray[0]) + Obj.hashCode(pairArray[1]))); | ||
} | ||
@@ -145,0 +155,0 @@ return this._hashCode; |
@@ -16,5 +16,7 @@ /* | ||
//@Require('Collection') | ||
//@Require('Exception') | ||
//@Require('List') | ||
//@Require('Obj') | ||
//@Require('TypeUtil') | ||
//@Require('WeightedListIterator') | ||
//@Require('WeightedListNode') | ||
@@ -33,8 +35,10 @@ | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var List = bugpack.require('List'); | ||
var Obj = bugpack.require('Obj'); | ||
var TypeUtil = bugpack.require('TypeUtil'); | ||
var WeightedListNode = bugpack.require('WeightedListNode'); | ||
var Class = bugpack.require('Class'); | ||
var Collection = bugpack.require('Collection'); | ||
var Exception = bugpack.require('Exception'); | ||
var List = bugpack.require('List'); | ||
var Obj = bugpack.require('Obj'); | ||
var TypeUtil = bugpack.require('TypeUtil'); | ||
var WeightedListIterator = bugpack.require('WeightedListIterator'); | ||
var WeightedListNode = bugpack.require('WeightedListNode'); | ||
@@ -128,4 +132,4 @@ | ||
if (Class.doesExtend(collection, WeightedList)) { | ||
for (var i = 0, size = collection.valueArray.length; i < size; i++) { | ||
this.add(collection.valueArray[i].getValue(), collection.valueArray[i].getWeight()); | ||
for (var i = 0, size = collection.getItemArray().length; i < size; i++) { | ||
this.add(collection.getItemArray()[i].getValue(), collection.getItemArray()[i].getWeight()); | ||
} | ||
@@ -138,3 +142,3 @@ } else { | ||
} else { | ||
throw new Error("collection must be an instance of Collection"); | ||
throw new Exception("collection must be an instance of Collection"); | ||
} | ||
@@ -144,10 +148,2 @@ }, | ||
/** | ||
* | ||
*/ | ||
clear: function() { | ||
this._super(); | ||
this.totalWeight = 0; | ||
}, | ||
/** | ||
* @param {*} value | ||
@@ -158,34 +154,12 @@ * @return {boolean} | ||
var weightedListNode = new WeightedListNode(value, 1); | ||
return this.getHashStore().hasValue(weightedListNode); | ||
return this.getHashStore().contains(weightedListNode); | ||
}, | ||
/** | ||
* @override | ||
* @param {function(*)} func | ||
*/ | ||
forEach: function(func) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
func(this.valueArray[i].getValue()); | ||
} | ||
}, | ||
/** | ||
* @override | ||
* @return {Array} Array is in the same order as the list | ||
*/ | ||
getValueArray: function() { | ||
var valueArray = []; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
valueArray.push(this.valueArray[i].getValue()); | ||
} | ||
return valueArray; | ||
}, | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getValueCount: function(value) { | ||
countValue: function(value) { | ||
var weightedListNode = new WeightedListNode(value, 1); | ||
return this.hashStore.getValueCount(weightedListNode); | ||
return this.getHashStore().countValue(weightedListNode); | ||
}, | ||
@@ -200,3 +174,3 @@ | ||
if (index > -1) { | ||
var firstValue = this.valueArray[index]; | ||
var firstValue = this.getItemArray()[index]; | ||
this.totalWeight -= firstValue.getWeight(); | ||
@@ -226,5 +200,5 @@ this.removeAt(index); | ||
var weightedListNode = new WeightedListNode(value, weight); | ||
this.hashStore.addValue(weightedListNode); | ||
this.getHashStore().add(weightedListNode); | ||
this.count++; | ||
this.valueArray.splice(index, 0, weightedListNode); | ||
this.getItemArray().splice(index, 0, weightedListNode); | ||
this.totalWeight += weight; | ||
@@ -247,4 +221,4 @@ } else { | ||
if (Class.doesExtend(collection, WeightedList)) { | ||
for (var i = 0, size = collection.valueArray.length; i < size; i++) { | ||
this.addAt(insertingIndex, collection.valueArray[i].getValue(), collection.valueArray[i].getWeight()); | ||
for (var i = 0, size = collection.getItemArray().length; i < size; i++) { | ||
this.addAt(insertingIndex, collection.getItemArray()[i].getValue(), collection.getItemArray()[i].getWeight()); | ||
@@ -275,5 +249,5 @@ // NOTE BRN: We increment the inserting index so that the collection is inserted in the correct order. | ||
if (index < this.getCount()) { | ||
return this.valueArray[index].getValue(); | ||
return this.getItemArray()[index].getValue(); | ||
} else { | ||
throw new Error("Index out of bounds"); | ||
throw new Exception("IndexOutOfBounds", {}, "Index out of bounds"); | ||
} | ||
@@ -287,4 +261,4 @@ }, | ||
indexOfFirst: function(value) { | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
if (Obj.equals(this.valueArray[i].getValue(), value)) { | ||
for (var i = 0, size = this.getItemArray().length; i < size; i++) { | ||
if (Obj.equals(this.getItemArray()[i].getValue(), value)) { | ||
return i; | ||
@@ -301,4 +275,4 @@ } | ||
indexOfLast: function(value) { | ||
for (var size = this.valueArray.length, i = size - 1; i >= 0; i--) { | ||
if (Obj.equals(this.valueArray[i].getValue(), value)) { | ||
for (var size = this.getItemArray().length, i = size - 1; i >= 0; i--) { | ||
if (Obj.equals(this.getItemArray()[i].getValue(), value)) { | ||
return i; | ||
@@ -311,2 +285,10 @@ } | ||
/** | ||
* @override | ||
* @return {IIndexValueIterator.<V>} | ||
*/ | ||
iterator: function() { | ||
return new WeightedListIterator(this); | ||
}, | ||
/** | ||
* @param {number} index | ||
@@ -317,12 +299,12 @@ * @return {*} The removed value | ||
if (index < this.getCount()) { | ||
var weightedListNode = this.valueArray[index]; | ||
var result = this.hashStore.removeValue(weightedListNode); | ||
var weightedListNode = this.getItemArray()[index]; | ||
var result = this.getHashStore().remove(weightedListNode); | ||
if (result) { | ||
this.count--; | ||
this.totalWeight -= weightedListNode.getWeight(); | ||
this.valueArray.splice(index, 1); | ||
this.getItemArray().splice(index, 1); | ||
} | ||
return weightedListNode.getValue(); | ||
} else { | ||
throw new Error("Index out of bounds"); | ||
throw new Exception("IndexOutOfBounds", {}, "Index out of bounds"); | ||
} | ||
@@ -341,3 +323,15 @@ }, | ||
/** | ||
* @override | ||
* @return {Array.<I>} Array is in the same order as the list | ||
*/ | ||
toArray: function() { | ||
var itemArray = []; | ||
for (var i = 0, size = this.getItemArray().length; i < size; i++) { | ||
itemArray.push(this.getItemArray()[i].getValue()); | ||
} | ||
return itemArray; | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -354,4 +348,4 @@ // Public Methods | ||
var currentWeight = 0; | ||
for (var i = 0, size = this.valueArray.length; i < size; i++) { | ||
var weightedListNode = this.valueArray[i]; | ||
for (var i = 0, size = this.getItemArray().length; i < size; i++) { | ||
var weightedListNode = this.getItemArray()[i]; | ||
currentWeight += weightedListNode.getWeight(); | ||
@@ -363,3 +357,3 @@ if (currentWeight >= weight) { | ||
} else { | ||
throw new Error("Weight out of bounds"); | ||
throw new Exception("WeightOutOfBounds", {}, "Weight out of bounds"); | ||
} | ||
@@ -366,0 +360,0 @@ } |
@@ -61,3 +61,3 @@ /* | ||
* @extends {Observable} | ||
* @implements {ICollection} | ||
* @implements {ICollection.<I>} | ||
* @template I | ||
@@ -116,3 +116,3 @@ */ | ||
toArray: function() { | ||
return this.getValueArray(); | ||
return this.observed.toArray(); | ||
}, | ||
@@ -191,14 +191,7 @@ | ||
/** | ||
* @return {Array.<I>} | ||
*/ | ||
getValueArray: function() { | ||
return this.observed.getValueArray(); | ||
}, | ||
/** | ||
* @param {*} value | ||
* @return {number} | ||
*/ | ||
getValueCount: function(value) { | ||
return this.observed.getValueCount(value); | ||
countValue: function(value) { | ||
return this.observed.countValue(value); | ||
}, | ||
@@ -205,0 +198,0 @@ |
@@ -176,30 +176,2 @@ /* | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
getKeyArray: function() { | ||
return this.observed.getKeyArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
getKeyCollection: function() { | ||
return this.observed.getKeyCollection(); | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
getValueArray: function() { | ||
return this.observed.getValueArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
getValueCollection: function() { | ||
return this.observed.getValueCollection(); | ||
}, | ||
/** | ||
* @return {boolean} | ||
@@ -228,3 +200,3 @@ */ | ||
if (Class.doesImplement(map, IMap)) { | ||
var keys = map.getKeyArray(); | ||
var keys = map.toKeyArray(); | ||
keys.forEach(function(key) { | ||
@@ -249,3 +221,31 @@ var value = map.get(key); | ||
/** | ||
* @return {Array.<K>} | ||
*/ | ||
toKeyArray: function() { | ||
return this.observed.toKeyArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<K>} | ||
*/ | ||
toKeyCollection: function() { | ||
return this.observed.toKeyCollection(); | ||
}, | ||
/** | ||
* @return {Array.<V>} | ||
*/ | ||
toValueArray: function() { | ||
return this.observed.toValueArray(); | ||
}, | ||
/** | ||
* @return {ICollection.<V>} | ||
*/ | ||
toValueCollection: function() { | ||
return this.observed.toValueCollection(); | ||
}, | ||
//------------------------------------------------------------------------------- | ||
@@ -252,0 +252,0 @@ // IObjectable Implementation |
@@ -84,3 +84,3 @@ /* | ||
getCauses: function() { | ||
return this.causeMap.getValueArray(); | ||
return this.causeMap.toValueArray(); | ||
}, | ||
@@ -87,0 +87,0 @@ |
@@ -82,3 +82,3 @@ /* | ||
getCauses: function() { | ||
return this.causeMap.getValueArray(); | ||
return this.causeMap.toValueArray(); | ||
}, | ||
@@ -85,0 +85,0 @@ |
{ | ||
"name": "bugcore", | ||
"version": "0.3.4", | ||
"version": "0.3.5", | ||
"description": "bugcore is a JavaScript library that provides a foundational architecture for object oriented JS", | ||
@@ -5,0 +5,0 @@ "main": "./scripts/bugcore-node.js", |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
1228013
223
28221