package xapi.collect.impl; import xapi.collect.api.CharPool; public class CopyingCharPool implements CharPool { @Override public char[] getArray(char[] src) { char[] copy = new char[src.length]; System.arraycopy(src, 0, copy, 0, src.length); return copy; } @Override public char[] getArray(char[] src, int start, int len) { assert start + len <= src.length; char[] copy = new char[len]; System.arraycopy(src, start, copy, 0, len); return copy; } @Override public char[] getArray(CharSequence src) { int len = src.length(); char[] copy = new char[len]; while(len-->0) copy[len] = src.charAt(len); return copy; } @Override public char[] getArray(CharSequence src, int start, int len) { assert start + len <= src.length(); char[] copy = new char[len]; while(len-->0) copy[len] = src.charAt(start + len); return copy; } }