Categories:
Audio (13)
Biotech (29)
Bytecode (36)
Database (77)
Framework (7)
Game (7)
General (507)
Graphics (53)
I/O (35)
IDE (2)
JAR Tools (101)
JavaBeans (21)
JDBC (121)
JDK (426)
JSP (20)
Logging (108)
Mail (58)
Messaging (8)
Network (84)
PDF (97)
Report (7)
Scripting (84)
Security (32)
Server (121)
Servlet (26)
SOAP (24)
Testing (54)
Web (15)
XML (309)
Collections:
Other Resources:
JDK 11 java.base.jmod - Base Module
JDK 11 java.base.jmod is the JMOD file for JDK 11 Base module.
JDK 11 Base module compiled class files are stored in \fyicenter\jdk-11.0.1\jmods\java.base.jmod.
JDK 11 Base module compiled class files are also linked and stored in the \fyicenter\jdk-11.0.1\lib\modules JImage file.
JDK 11 Base module source code files are stored in \fyicenter\jdk-11.0.1\lib\src.zip\java.base.
You can click and view the content of each source code file in the list below.
✍: FYIcenter
⏎ sun/net/www/HeaderParser.java
/* * Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved. * ORACLE PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. * * * * * * * * * * * * * * * * * * * * */ package sun.net.www; import java.util.Iterator; /* This is useful for the nightmare of parsing multi-part HTTP/RFC822 headers * sensibly: * From a String like: 'timeout=15, max=5' * create an array of Strings: * { {"timeout", "15"}, * {"max", "5"} * } * From one like: 'Basic Realm="FuzzFace" Foo="Biz Bar Baz"' * create one like (no quotes in literal): * { {"basic", null}, * {"realm", "FuzzFace"} * {"foo", "Biz Bar Baz"} * } * keys are converted to lower case, vals are left as is.... * * @author Dave Brown */ public class HeaderParser { /* table of key/val pairs */ String raw; String[][] tab; int nkeys; int asize = 10; // initial size of array is 10 public HeaderParser(String raw) { this.raw = raw; tab = new String[asize][2]; parse(); } private HeaderParser () { } /** * create a new HeaderParser from this, whose keys (and corresponding values) * range from "start" to "end-1" */ public HeaderParser subsequence (int start, int end) { if (start == 0 && end == nkeys) { return this; } if (start < 0 || start >= end || end > nkeys) throw new IllegalArgumentException ("invalid start or end"); HeaderParser n = new HeaderParser (); n.tab = new String [asize][2]; n.asize = asize; System.arraycopy (tab, start, n.tab, 0, (end-start)); n.nkeys= (end-start); return n; } private void parse() { if (raw != null) { raw = raw.trim(); char[] ca = raw.toCharArray(); int beg = 0, end = 0, i = 0; boolean inKey = true; boolean inQuote = false; int len = ca.length; while (end < len) { char c = ca[end]; if ((c == '=') && !inQuote) { // end of a key tab[i][0] = new String(ca, beg, end-beg).toLowerCase(); inKey = false; end++; beg = end; } else if (c == '\"') { if (inQuote) { tab[i++][1]= new String(ca, beg, end-beg); inQuote=false; do { end++; } while (end < len && (ca[end] == ' ' || ca[end] == ',')); inKey=true; beg=end; } else { inQuote=true; end++; beg=end; } } else if (c == ' ' || c == ',') { // end key/val, of whatever we're in if (inQuote) { end++; continue; } else if (inKey) { tab[i++][0] = (new String(ca, beg, end-beg)).toLowerCase(); } else { tab[i++][1] = (new String(ca, beg, end-beg)); } while (end < len && (ca[end] == ' ' || ca[end] == ',')) { end++; } inKey = true; beg = end; } else { end++; } if (i == asize) { asize = asize * 2; String[][] ntab = new String[asize][2]; System.arraycopy (tab, 0, ntab, 0, tab.length); tab = ntab; } } // get last key/val, if any if (--end > beg) { if (!inKey) { if (ca[end] == '\"') { tab[i++][1] = (new String(ca, beg, end-beg)); } else { tab[i++][1] = (new String(ca, beg, end-beg+1)); } } else { tab[i++][0] = (new String(ca, beg, end-beg+1)).toLowerCase(); } } else if (end == beg) { if (!inKey) { if (ca[end] == '\"') { tab[i++][1] = String.valueOf(ca[end-1]); } else { tab[i++][1] = String.valueOf(ca[end]); } } else { tab[i++][0] = String.valueOf(ca[end]).toLowerCase(); } } nkeys=i; } } public String findKey(int i) { if (i < 0 || i > asize) return null; return tab[i][0]; } public String findValue(int i) { if (i < 0 || i > asize) return null; return tab[i][1]; } public String findValue(String key) { return findValue(key, null); } public String findValue(String k, String Default) { if (k == null) return Default; k = k.toLowerCase(); for (int i = 0; i < asize; ++i) { if (tab[i][0] == null) { return Default; } else if (k.equals(tab[i][0])) { return tab[i][1]; } } return Default; } class ParserIterator implements Iterator<String> { int index; boolean returnsValue; // or key ParserIterator (boolean returnValue) { returnsValue = returnValue; } public boolean hasNext () { return index<nkeys; } public String next () { return tab[index++][returnsValue?1:0]; } public void remove () { throw new UnsupportedOperationException ("remove not supported"); } } public Iterator<String> keys () { return new ParserIterator (false); } public Iterator<String> values () { return new ParserIterator (true); } public String toString () { Iterator<String> k = keys(); StringBuilder sb = new StringBuilder(); sb.append("{size=").append(asize).append(" nkeys=").append(nkeys) .append(' '); for (int i=0; k.hasNext(); i++) { String key = k.next(); String val = findValue (i); if (val != null && "".equals (val)) { val = null; } sb.append(" {").append(key).append(val == null ? "" : "," + val) .append('}'); if (k.hasNext()) { sb.append (','); } } sb.append (" }"); return sb.toString(); } public int findInt(String k, int Default) { try { return Integer.parseInt(findValue(k, String.valueOf(Default))); } catch (Throwable t) { return Default; } } /* public static void main(String[] a) throws Exception { System.out.print("enter line to parse> "); System.out.flush(); DataInputStream dis = new DataInputStream(System.in); String line = dis.readLine(); HeaderParser p = new HeaderParser(line); for (int i = 0; i < asize; ++i) { if (p.findKey(i) == null) break; String v = p.findValue(i); System.out.println(i + ") " +p.findKey(i) + "="+v); } System.out.println("Done!"); } */ }
⏎ sun/net/www/HeaderParser.java
Or download all of them as a single archive file:
File name: java.base-11.0.1-src.zip File size: 8740354 bytes Release date: 2018-11-04 Download
2020-05-29, 207532👍, 0💬
Popular Posts:
Apache Commons Codec library provides implementations of common encoders and decoders such as Base64...
commons-collections4-4.2 -sources.jaris the source JAR file for Apache Commons Collections 4.2, whic...
The Jakarta-ORO Java classes are a set of text-processing Java classes that provide Perl5 compatible...
commons-collections4-4.4 -sources.jaris the source JAR file for Apache Commons Collections 4.2, whic...
JDK 11 java.xml.crypto.jmod is the JMOD file for JDK 11 XML (eXtensible Markup Language) Crypto modu...