private boolean eval(HttpCode<TRANS,?> code, String str, List<String> props) {
// int plus = str.indexOf('+');
-// if(plus<0) {
+// if (plus<0) {
boolean ok = false;
boolean any = false;
- for(Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type : types) {
+ for (Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type : types) {
ok = true;
- if(type.x.equals(str)) {
- for(Iterator<String> iter = props.iterator();ok && iter.hasNext();) {
+ if (type.x.equals(str)) {
+ for (Iterator<String> iter = props.iterator();ok && iter.hasNext();) {
ok = props(type,iter.next(),iter.next());
}
- if(ok) {
+ if (ok) {
any = true;
acceptable.add(type);
}
// int prev = str.indexOf('/')+1;
// String first = str.substring(0,prev);
// String nstr;
-// while(prev!=0) {
+// while (prev!=0) {
// nstr = first + (plus<0?str.substring(prev):str.substring(prev,plus));
//
-// for(Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type : types) {
-// if(type.x.equals(nstr)) {
+// for (Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type : types) {
+// if (type.x.equals(nstr)) {
// acceptable.add(type);
// return type;
// }
*/
private boolean props(Pair<String, Pair<HttpCode<TRANS,?>, List<Pair<String, Object>>>> type, String tag, String value) {
boolean rv = false;
- if(type.y!=null) {
- for(Pair<String,Object> prop : type.y.y){
- if(tag.equals(prop.x)) {
- if(tag.equals("charset")) {
+ if (type.y!=null) {
+ for (Pair<String,Object> prop : type.y.y){
+ if (tag.equals(prop.x)) {
+ if (tag.equals("charset")) {
return prop.x==null?false:prop.y.equals(value.toLowerCase()); // return True if Matched
- } else if(tag.equals("version")) {
+ } else if (tag.equals("version")) {
return prop.y.equals(new Version(value)); // Note: Version Class knows Minor Version encoding
- } else if(tag.equals(Content.Q)) { // replace Q value
+ } else if (tag.equals(Content.Q)) { // replace Q value
try {
type.y.y.get(0).y=Float.parseFloat(value);
} catch (NumberFormatException e) {
name=null;
cis = cie+1; // find comma start
- while(cis<bytes.length && Character.isSpaceChar(bytes[cis]))++cis;
+ while (cis<bytes.length && Character.isSpaceChar(bytes[cis]))++cis;
cie = cntnt.indexOf(',',cis); // find comma end
cend = cie<0?bytes.length:cie; // If no comma, set comma end to full length, else cie
- while(cend>cis && Character.isSpaceChar(bytes[cend-1]))--cend;
+ while (cend>cis && Character.isSpaceChar(bytes[cend-1]))--cend;
// Start SEMIS
sie=cis-1;
do {
sis = sie+1; // semi start is one after previous end
- while(sis<bytes.length && Character.isSpaceChar(bytes[sis]))++sis;
+ while (sis<bytes.length && Character.isSpaceChar(bytes[sis]))++sis;
sie = cntnt.indexOf(';',sis);
send = sie>cend || sie<0?cend:sie; // if the Semicolon is after the comma, or non-existent, use comma end, else keep
- while(send>sis && Character.isSpaceChar(bytes[send-1]))--send;
- if(name==null) { // first entry in Comma set is the name, not a property
+ while (send>sis && Character.isSpaceChar(bytes[send-1]))--send;
+ if (name==null) { // first entry in Comma set is the name, not a property
name = new String(bytes,sis,send-sis);
} else { // We've looped past the first Semi, now process as properties
// If there are additional elements (more entities within Semi Colons)
// apply Properties
int eq = cntnt.indexOf('=',sis);
- if(eq>sis && eq<send) {
+ if (eq>sis && eq<send) {
props.add(new String(bytes,sis,eq-sis));
props.add(new String(bytes,eq+1,send-(eq+1)));
}
}
// End Property
- } while(sie<=cend && sie>=cis); // End SEMI processing
+ } while (sie<=cend && sie>=cis); // End SEMI processing
// Now evaluate Comma set and return if true
- if(eval(code,name,props))return true; // else loop again to check next comma
- } while(cie>=0); // loop to next comma
+ if (eval(code,name,props))return true; // else loop again to check next comma
+ } while (cie>=0); // loop to next comma
return false; // didn't get even one match
}