blob: 2b35d79f8e8309d0c76e5573b968d6767d16a694 [file] [log] [blame]
/*
* Copyright 2007 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 com.google.gwt.user.server.rpc.impl;
/**
* A vector of primitive characters.
*/
class CharVector {
private int capacityIncrement;
private char chars[];
private int size;
public CharVector(int initialCapacity, int capacityIncrement) {
assert (initialCapacity >= 0);
assert (capacityIncrement >= 0);
this.capacityIncrement = capacityIncrement;
chars = new char[initialCapacity];
}
public void add(char ch) {
if (size >= chars.length) {
int growBy = (capacityIncrement == 0) ? chars.length * 2
: capacityIncrement;
char newChars[] = new char[(chars.length + growBy)];
System.arraycopy(chars, 0, newChars, 0, size);
chars = newChars;
}
chars[size++] = ch;
}
public char[] asArray() {
return chars;
}
public char get(int index) {
assert (index < size);
return chars[index];
}
public int getSize() {
return size;
}
public void set(int index, char ch) {
assert (index >= 0 && index < size);
chars[index] = ch;
++size;
}
}