Merge "Delete general sounding "CharArrayBuffers" class."
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user