14a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project/*---------------------------------------------------------------------------*
24a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  IntArrayList.c  *
34a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
44a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Copyright 2007, 2008 Nuance Communciations, Inc.                               *
54a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
64a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Licensed under the Apache License, Version 2.0 (the 'License');          *
74a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  you may not use this file except in compliance with the License.         *
84a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
94a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  You may obtain a copy of the License at                                  *
104a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *      http://www.apache.org/licenses/LICENSE-2.0                           *
114a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
124a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  Unless required by applicable law or agreed to in writing, software      *
134a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  distributed under the License is distributed on an 'AS IS' BASIS,        *
144a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
154a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  See the License for the specific language governing permissions and      *
164a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *  limitations under the License.                                           *
174a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *                                                                           *
184a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project *---------------------------------------------------------------------------*/
194a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
204a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "IntArrayList.h"
214a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "IntArrayListImpl.h"
224a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project#include "pmemory.h"
234a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
244a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListAdd(IntArrayList* self, int element)
254a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
264a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
274a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
284a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->add(self, element);
294a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
304a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
314a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListRemove(IntArrayList* self, int element)
324a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
334a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
344a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
354a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->remove(self, element);
364a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
374a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
384a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListRemoveAll(IntArrayList* self)
394a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
404a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
414a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
424a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->removeAll(self);
434a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
444a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
454a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListContains(IntArrayList* self, int element, ESR_BOOL* exists)
464a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
474a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
484a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
494a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->contains(self, element, exists);
504a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
514a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
524a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListGetSize(IntArrayList* self, size_t* size)
534a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
544a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
554a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
564a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->getSize(self, size);
574a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
584a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
594a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListGet(IntArrayList* self, size_t index, int* element)
604a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
614a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
624a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
634a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->get(self, index, element);
644a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
654a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
664a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListSet(IntArrayList* self, size_t index, int element)
674a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
684a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
694a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
704a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->set(self, index, element);
714a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
724a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
734a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListToStaticArray(IntArrayList* self, int** newArray)
744a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
754a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
764a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
774a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->toStaticArray(self, newArray);
784a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
794a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project
804a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source ProjectESR_ReturnCode IntArrayListDestroy(IntArrayList* self)
814a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project{
824a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  if (self == NULL)
834a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project    return ESR_INVALID_ARGUMENT;
844a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project  return self->destroy(self);
854a68b3365c8c50aa93505e99ead2565ab73dcdb0The Android Open Source Project}
86