am bedb1378: am 8036d2ec: Merge "Delete general sounding "CharArrayBuffers" class."

* commit 'bedb13782a6beb5f15621915a7b68439c6649ced':
  Delete general sounding "CharArrayBuffers" class.
This commit is contained in:
Narayan Kamath
2014-11-27 14:10:03 +00:00
committed by Android Git Automerger
3 changed files with 57 additions and 94 deletions

View File

@@ -1,89 +0,0 @@
/*
* Copyright (C) 2008 The Android Open Source Project
*
* 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 android.net.http;
import org.apache.http.util.CharArrayBuffer;
import org.apache.http.protocol.HTTP;
/**
* Utility methods for working on CharArrayBuffers.
*
* {@hide}
*/
class CharArrayBuffers {
static final char uppercaseAddon = 'a' - 'A';
/**
* Returns true if the buffer contains the given string. Ignores leading
* whitespace and case.
*
* @param buffer to search
* @param beginIndex index at which we should start
* @param str to search for
*/
static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer,
int beginIndex, final String str) {
int len = buffer.length();
char[] chars = buffer.buffer();
while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) {
beginIndex++;
}
int size = str.length();
boolean ok = len >= beginIndex + size;
for (int j=0; ok && (j<size); j++) {
char a = chars[beginIndex+j];
char b = str.charAt(j);
if (a != b) {
a = toLower(a);
b = toLower(b);
ok = a == b;
}
}
return ok;
}
/**
* Returns index of first occurence ch. Lower cases characters leading up
* to first occurrence of ch.
*/
static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) {
int beginIndex = 0;
int endIndex = buffer.length();
char[] chars = buffer.buffer();
for (int i = beginIndex; i < endIndex; i++) {
char current = chars[i];
if (current == ch) {
return i;
} else if (current >= 'A' && current <= 'Z'){
// make lower case
current += uppercaseAddon;
chars[i] = current;
}
}
return -1;
}
private static char toLower(char c) {
if (c >= 'A' && c <= 'Z'){
c += uppercaseAddon;
}
return c;
}
}

View File

@@ -158,7 +158,7 @@ public final class Headers {
}
public void parseHeader(CharArrayBuffer buffer) {
int pos = CharArrayBuffers.setLowercaseIndexOf(buffer, ':');
int pos = setLowercaseIndexOf(buffer, ':');
if (pos == -1) {
return;
}
@@ -459,12 +459,63 @@ public final class Headers {
}
private void setConnectionType(CharArrayBuffer buffer, int pos) {
if (CharArrayBuffers.containsIgnoreCaseTrimmed(
buffer, pos, HTTP.CONN_CLOSE)) {
if (containsIgnoreCaseTrimmed(buffer, pos, HTTP.CONN_CLOSE)) {
connectionType = CONN_CLOSE;
} else if (CharArrayBuffers.containsIgnoreCaseTrimmed(
} else if (containsIgnoreCaseTrimmed(
buffer, pos, HTTP.CONN_KEEP_ALIVE)) {
connectionType = CONN_KEEP_ALIVE;
}
}
/**
* Returns true if the buffer contains the given string. Ignores leading
* whitespace and case.
*
* @param buffer to search
* @param beginIndex index at which we should start
* @param str to search for
*/
static boolean containsIgnoreCaseTrimmed(CharArrayBuffer buffer,
int beginIndex, final String str) {
int len = buffer.length();
char[] chars = buffer.buffer();
while (beginIndex < len && HTTP.isWhitespace(chars[beginIndex])) {
beginIndex++;
}
int size = str.length();
boolean ok = len >= (beginIndex + size);
for (int j=0; ok && (j < size); j++) {
char a = chars[beginIndex + j];
char b = str.charAt(j);
if (a != b) {
a = Character.toLowerCase(a);
b = Character.toLowerCase(b);
ok = a == b;
}
}
return true;
}
/**
* Returns index of first occurence ch. Lower cases characters leading up
* to first occurrence of ch.
*/
static int setLowercaseIndexOf(CharArrayBuffer buffer, final int ch) {
int beginIndex = 0;
int endIndex = buffer.length();
char[] chars = buffer.buffer();
for (int i = beginIndex; i < endIndex; i++) {
char current = chars[i];
if (current == ch) {
return i;
} else {
chars[i] = Character.toLowerCase(current);
}
}
return -1;
}
}

View File

@@ -36,7 +36,7 @@ import javax.net.ssl.X509TrustManager;
*/
public class X509TrustManagerExtensions {
TrustManagerImpl mDelegate;
final TrustManagerImpl mDelegate;
/**
* Constructs a new X509TrustManagerExtensions wrapper.
@@ -48,6 +48,7 @@ public class X509TrustManagerExtensions {
if (tm instanceof TrustManagerImpl) {
mDelegate = (TrustManagerImpl) tm;
} else {
mDelegate = null;
throw new IllegalArgumentException("tm is an instance of " + tm.getClass().getName() +
" which is not a supported type of X509TrustManager");
}