/* * Copyright 2011 Google Inc. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy of * the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations under * the License. */ package elemental.util; import com.google.gwt.core.client.GWT; import elemental.util.impl.JreArrayOf; import elemental.util.impl.JreArrayOfBoolean; import elemental.util.impl.JreArrayOfInt; import elemental.util.impl.JreArrayOfNumber; import elemental.util.impl.JreArrayOfString; import elemental.util.impl.JreMapFromIntTo; import elemental.util.impl.JreMapFromIntToString; import elemental.util.impl.JreMapFromStringTo; import elemental.util.impl.JreMapFromStringToBoolean; import elemental.util.impl.JreMapFromStringToInt; import elemental.util.impl.JreMapFromStringToNumber; import elemental.util.impl.JreMapFromStringToString; /** * Factory and utility methods for elemental collections. */ public class Collections { /** * Create an ArrayOf collection using the most efficient implementation strategy for the given * client. * * @param <T> the element type contained in the collection * @return a JreArrayOf or JsArrayOf instance */ public static <T> ArrayOf<T> arrayOf() { return new JreArrayOf<T>(); } /** * Create an ArrayOfBoolean collection using the most efficient implementation strategy for the * given client. * * @return a JreArrayOfBoolean or JsArrayOfBoolean instance */ public static <T> ArrayOfBoolean arrayOfBoolean() { return new JreArrayOfBoolean(); } /** * Create an ArrayOfInt collection using the most efficient implementation strategy for the given * client. * * @return a JreArrayOfInt or JsArrayOfInt instance */ public static <T> ArrayOfInt arrayOfInt() { return new JreArrayOfInt(); } /** * Create an ArrayOfNumber collection using the most efficient implementation strategy for the * given client. * * @return a JreArrayOfNumber or JsArrayOfNumber instance */ public static <T> ArrayOfNumber arrayOfNumber() { return new JreArrayOfNumber(); } /** * Create an ArrayOfString collection using the most efficient implementation strategy for the * given client. * * @return a JreArrayOfString or JsArrayOfString instance */ public static <T> ArrayOfString arrayOfString() { return new JreArrayOfString(); } /** * Create a MapFromIntTo collection for a given type using the most efficient implementation * strategy for the given client. * * @param <T> the element type contained in the collection * @return a JreMapFromIntTo or JsMapFromIntTo instance */ public static <T> MapFromIntTo<T> mapFromIntTo() { return new JreMapFromIntTo<T>(); } /** * Create a MapFromIntToString collection for a given type using the most efficient implementation * strategy for the given client. * * @return a JreMapFromIntToString or JsMapFromIntToString instance */ public static MapFromIntToString mapFromIntToString() { return new JreMapFromIntToString(); } /** * Create a MapFromStringTo collection for a given type using the most efficient implementation * strategy for the given client. * * @param <T> the element type contained in the collection * @return a JreMapFromStringTo or JsMapFromStringTo instance */ public static <T> MapFromStringTo<T> mapFromStringTo() { return new JreMapFromStringTo<T>(); } /** * Create a MapFromStringToBoolean collection for a given type using the most efficient * implementation strategy for the given client. * * @return a JreMapFromStringToBoolean or JsMapFromStringToBoolean instance */ public static MapFromStringToBoolean mapFromStringToBoolean() { return new JreMapFromStringToBoolean(); } /** * Create a MapFromStringToInt collection for a given type using the most efficient implementation * strategy for the given client. * * @return a JreMapFromStringToInt or JsMapFromStringToInt instance */ public static MapFromStringToInt mapFromStringToInt() { return new JreMapFromStringToInt(); } /** * Create a MapFromStringToNumber collection for a given type using the most efficient * implementation strategy for the given client. * * @return a JreMapFromStringToNumber or JsMapFromStringToNumber instance */ public static MapFromStringToNumber mapFromStringToNumber() { return new JreMapFromStringToNumber(); } /** * Create a MapFromStringToString collection for a given type using the most efficient * implementation strategy for the given client. * * @return a JreMapFromStringToString or JsMapFromStringToString instance */ public static MapFromStringToString mapFromStringToString() { return new JreMapFromStringToString(); } }