mirror of
https://github.com/openjdk/jdk.git
synced 2026-03-22 21:59:52 +00:00
Merge
This commit is contained in:
commit
10ffeaaadd
@ -332,7 +332,7 @@ function streamClose(stream) {
|
||||
* @param str input from which script is loaded and evaluated
|
||||
*/
|
||||
if (typeof(load) == 'undefined') {
|
||||
var load = function(str) {
|
||||
this.load = function(str) {
|
||||
var stream = inStream(str);
|
||||
var bstream = new BufferedInputStream(stream);
|
||||
var reader = new BufferedReader(new InputStreamReader(bstream));
|
||||
@ -712,7 +712,7 @@ if (typeof(exit) == 'undefined') {
|
||||
* @param exitCode integer code returned to OS shell.
|
||||
* optional, defaults to 0
|
||||
*/
|
||||
var exit = function (code) {
|
||||
this.exit = function (code) {
|
||||
if (code) {
|
||||
java.lang.System.exit(code + 0);
|
||||
} else {
|
||||
@ -725,7 +725,7 @@ if (typeof(quit) == 'undefined') {
|
||||
/**
|
||||
* synonym for exit
|
||||
*/
|
||||
var quit = function (code) {
|
||||
this.quit = function (code) {
|
||||
exit(code);
|
||||
}
|
||||
}
|
||||
@ -881,7 +881,7 @@ if (typeof(printf) == 'undefined') {
|
||||
* @param format string to format the rest of the print items
|
||||
* @param args variadic argument list
|
||||
*/
|
||||
var printf = function (format, args/*, more args*/) {
|
||||
this.printf = function (format, args/*, more args*/) {
|
||||
var array = java.lang.reflect.Array.newInstance(java.lang.Object,
|
||||
arguments.length - 1);
|
||||
for (var i = 0; i < array.length; i++) {
|
||||
@ -921,25 +921,7 @@ function read(prompt, multiline) {
|
||||
}
|
||||
|
||||
if (typeof(println) == 'undefined') {
|
||||
var print = function(str, newline) {
|
||||
if (typeof(str) == 'undefined') {
|
||||
str = 'undefined';
|
||||
} else if (str == null) {
|
||||
str = 'null';
|
||||
}
|
||||
|
||||
if (!(out instanceof java.io.PrintWriter)) {
|
||||
out = new java.io.PrintWriter(out);
|
||||
}
|
||||
|
||||
out.print(String(str));
|
||||
if (newline) {
|
||||
out.print('\n');
|
||||
}
|
||||
out.flush();
|
||||
}
|
||||
|
||||
var println = function(str) {
|
||||
print(str, true);
|
||||
};
|
||||
// just synonym to print
|
||||
this.println = print;
|
||||
}
|
||||
|
||||
|
||||
@ -48,132 +48,87 @@ package java.io;
|
||||
* may be thrown if the input stream has been
|
||||
* closed.
|
||||
*
|
||||
* <h4><a name="modified-utf-8">Modified UTF-8</a></h4>
|
||||
* <h3><a name="modified-utf-8">Modified UTF-8</a></h3>
|
||||
* <p>
|
||||
* Implementations of the DataInput and DataOutput interfaces represent
|
||||
* Unicode strings in a format that is a slight modification of UTF-8.
|
||||
* (For information regarding the standard UTF-8 format, see section
|
||||
* <i>3.9 Unicode Encoding Forms</i> of <i>The Unicode Standard, Version
|
||||
* 4.0</i>).
|
||||
* Note that in the following tables, the most significant bit appears in the
|
||||
* Note that in the following table, the most significant bit appears in the
|
||||
* far left-hand column.
|
||||
* <p>
|
||||
* All characters in the range {@code '\u005Cu0001'} to
|
||||
* {@code '\u005Cu007F'} are represented by a single byte:
|
||||
*
|
||||
* <blockquote>
|
||||
* <table border="1" cellspacing="0" cellpadding="8" width="50%"
|
||||
* <table border="1" cellspacing="0" cellpadding="8"
|
||||
* summary="Bit values and bytes">
|
||||
* <tr>
|
||||
* <th colspan="9"><span style="font-weight:normal">
|
||||
* All characters in the range {@code '\u005Cu0001'} to
|
||||
* {@code '\u005Cu007F'} are represented by a single byte:</span></th>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <td></td>
|
||||
* <th id="bit_a">Bit Values</th>
|
||||
* <th colspan="8" id="bit_a">Bit Values</th>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte1_a">Byte 1</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>0</center>
|
||||
* <td colspan="7"><center>bits 6-0</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="7"><center>bits 6-0</center>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th colspan="9"><span style="font-weight:normal">
|
||||
* The null character {@code '\u005Cu0000'} and characters
|
||||
* in the range {@code '\u005Cu0080'} to {@code '\u005Cu07FF'} are
|
||||
* represented by a pair of bytes:</span></th>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p>
|
||||
* The null character {@code '\u005Cu0000'} and characters in the
|
||||
* range {@code '\u005Cu0080'} to {@code '\u005Cu07FF'} are
|
||||
* represented by a pair of bytes:
|
||||
*
|
||||
* <blockquote>
|
||||
* <table border="1" cellspacing="0" cellpadding="8" width="50%"
|
||||
* summary="Bit values and bytes">
|
||||
* <tr>
|
||||
* <td></td>
|
||||
* <th id="bit_b">Bit Values</th>
|
||||
* <th colspan="8" id="bit_b">Bit Values</th>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte1_b">Byte 1</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>1</center>
|
||||
* <td width="12%"><center>0</center>
|
||||
* <td colspan="5"><center>bits 10-6</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>1</center>
|
||||
* <td><center>1</center>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="5"><center>bits 10-6</center>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte2_a">Byte 2</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>0</center>
|
||||
* <td colspan="6"><center>bits 5-0</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>1</center>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="6"><center>bits 5-0</center>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th colspan="9"><span style="font-weight:normal">
|
||||
* {@code char} values in the range {@code '\u005Cu0800'}
|
||||
* to {@code '\u005CuFFFF'} are represented by three bytes:</span></th>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </blockquote>
|
||||
*
|
||||
* <br>
|
||||
* {@code char} values in the range {@code '\u005Cu0800'} to
|
||||
* {@code '\u005CuFFFF'} are represented by three bytes:
|
||||
*
|
||||
* <blockquote>
|
||||
* <table border="1" cellspacing="0" cellpadding="8" width="50%"
|
||||
* summary="Bit values and bytes">
|
||||
* <tr>
|
||||
* <td></td>
|
||||
* <th id="bit_c">Bit Values</th>
|
||||
* <th colspan="8"id="bit_c">Bit Values</th>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte1_c">Byte 1</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>1</center>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>0</center>
|
||||
* <td colspan="4"><center>bits 15-12</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>1</center>
|
||||
* <td><center>1</center>
|
||||
* <td><center>1</center>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="4"><center>bits 15-12</center>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte2_b">Byte 2</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>0</center>
|
||||
* <td colspan="6"><center>bits 11-6</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>1</center>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="6"><center>bits 11-6</center>
|
||||
* </tr>
|
||||
* <tr>
|
||||
* <th id="byte3">Byte 3</th>
|
||||
* <td>
|
||||
* <table border="1" cellspacing="0" width="100%">
|
||||
* <tr>
|
||||
* <td width="12%"><center>1</center>
|
||||
* <td width="13%"><center>0</center>
|
||||
* <td colspan="6"><center>bits 5-0</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </td>
|
||||
* <td><center>1</center>
|
||||
* <td><center>0</center>
|
||||
* <td colspan="6"><center>bits 5-0</center>
|
||||
* </tr>
|
||||
* </table>
|
||||
* </blockquote>
|
||||
*
|
||||
* </blockquote>
|
||||
* <p>
|
||||
* The differences between this format and the
|
||||
* standard UTF-8 format are the following:
|
||||
|
||||
@ -129,7 +129,7 @@ import sun.security.action.GetPropertyAction;
|
||||
* created, the abstract pathname represented by a <code>File</code> object
|
||||
* will never change.
|
||||
*
|
||||
* <h4>Interoperability with {@code java.nio.file} package</h4>
|
||||
* <h3>Interoperability with {@code java.nio.file} package</h3>
|
||||
*
|
||||
* <p> The <a href="../../java/nio/file/package-summary.html">{@code java.nio.file}</a>
|
||||
* package defines interfaces and classes for the Java virtual machine to access
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -313,6 +313,7 @@ public class ObjectInputStream
|
||||
* @throws SecurityException if a security manager exists and its
|
||||
* <code>checkPermission</code> method denies enabling
|
||||
* subclassing.
|
||||
* @throws IOException if an I/O error occurs while creating this stream
|
||||
* @see SecurityManager#checkPermission
|
||||
* @see java.io.SerializablePermission
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -265,6 +265,7 @@ public class ObjectOutputStream
|
||||
* @throws SecurityException if a security manager exists and its
|
||||
* <code>checkPermission</code> method denies enabling
|
||||
* subclassing.
|
||||
* @throws IOException if an I/O error occurs while creating this stream
|
||||
* @see SecurityManager#checkPermission
|
||||
* @see java.io.SerializablePermission
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -240,6 +240,8 @@ public class ObjectStreamField
|
||||
* Returns boolean value indicating whether or not the serializable field
|
||||
* represented by this ObjectStreamField instance is unshared.
|
||||
*
|
||||
* @return {@code true} if this field is unshared
|
||||
*
|
||||
* @since 1.4
|
||||
*/
|
||||
public boolean isUnshared() {
|
||||
|
||||
@ -128,7 +128,7 @@ public class RandomAccessFile implements DataOutput, DataInput, Closeable {
|
||||
* meanings are:
|
||||
*
|
||||
* <table summary="Access mode permitted values and meanings">
|
||||
* <tr><th><p align="left">Value</p></th><th><p align="left">Meaning</p></th></tr>
|
||||
* <tr><th align="left">Value</th><th align="left">Meaning</th></tr>
|
||||
* <tr><td valign="top"><tt>"r"</tt></td>
|
||||
* <td> Open for reading only. Invoking any of the <tt>write</tt>
|
||||
* methods of the resulting object will cause an {@link
|
||||
|
||||
@ -157,10 +157,10 @@ public final class Class<T> implements java.io.Serializable,
|
||||
*
|
||||
* The string is formatted as a list of type modifiers, if any,
|
||||
* followed by the kind of type (empty string for primitive types
|
||||
* and {@code class}, {@code enum}, {@code interface}, or {@code
|
||||
* @interface}, as appropriate), followed by the type's name,
|
||||
* followed by an angle-bracketed comma-separated list of the
|
||||
* type's type parameters, if any.
|
||||
* and {@code class}, {@code enum}, {@code interface}, or
|
||||
* <code>@</code>{@code interface}, as appropriate), followed
|
||||
* by the type's name, followed by an angle-bracketed
|
||||
* comma-separated list of the type's type parameters, if any.
|
||||
*
|
||||
* A space is used to separate modifiers from one another and to
|
||||
* separate any modifiers from the kind of type. The modifiers
|
||||
|
||||
@ -29,6 +29,8 @@ package java.lang.invoke;
|
||||
* LambdaConversionException
|
||||
*/
|
||||
public class LambdaConversionException extends Exception {
|
||||
private static final long serialVersionUID = 292L + 8L;
|
||||
|
||||
/**
|
||||
* Constructs a {@code LambdaConversionException}.
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2003, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -25,13 +25,12 @@
|
||||
|
||||
package java.lang.ref;
|
||||
|
||||
|
||||
/* Final references, used to implement finalization */
|
||||
|
||||
/**
|
||||
* Final references, used to implement finalization
|
||||
*/
|
||||
class FinalReference<T> extends Reference<T> {
|
||||
|
||||
public FinalReference(T referent, ReferenceQueue<? super T> q) {
|
||||
super(referent, q);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -29,16 +29,16 @@ import java.security.PrivilegedAction;
|
||||
import java.security.AccessController;
|
||||
|
||||
|
||||
final class Finalizer extends FinalReference { /* Package-private; must be in
|
||||
same package as the Reference
|
||||
class */
|
||||
final class Finalizer extends FinalReference<Object> { /* Package-private; must be in
|
||||
same package as the Reference
|
||||
class */
|
||||
|
||||
/* A native method that invokes an arbitrary object's finalize method is
|
||||
required since the finalize method is protected
|
||||
*/
|
||||
static native void invokeFinalizeMethod(Object o) throws Throwable;
|
||||
|
||||
private static ReferenceQueue queue = new ReferenceQueue();
|
||||
private static ReferenceQueue<Object> queue = new ReferenceQueue<>();
|
||||
private static Finalizer unfinalized = null;
|
||||
private static final Object lock = new Object();
|
||||
|
||||
|
||||
@ -96,6 +96,7 @@ public abstract class Reference<T> {
|
||||
* Enqueued: next reference in queue (or this if last)
|
||||
* Inactive: this
|
||||
*/
|
||||
@SuppressWarnings("rawtypes")
|
||||
Reference next;
|
||||
|
||||
/* When active: next element in a discovered reference list maintained by GC (or this if last)
|
||||
@ -119,7 +120,7 @@ public abstract class Reference<T> {
|
||||
* them. This list is protected by the above lock object. The
|
||||
* list uses the discovered field to link its elements.
|
||||
*/
|
||||
private static Reference pending = null;
|
||||
private static Reference<Object> pending = null;
|
||||
|
||||
/* High-priority thread to enqueue pending References
|
||||
*/
|
||||
@ -131,7 +132,7 @@ public abstract class Reference<T> {
|
||||
|
||||
public void run() {
|
||||
for (;;) {
|
||||
Reference r;
|
||||
Reference<Object> r;
|
||||
synchronized (lock) {
|
||||
if (pending != null) {
|
||||
r = pending;
|
||||
@ -166,7 +167,7 @@ public abstract class Reference<T> {
|
||||
continue;
|
||||
}
|
||||
|
||||
ReferenceQueue q = r.queue;
|
||||
ReferenceQueue<Object> q = r.queue;
|
||||
if (q != ReferenceQueue.NULL) q.enqueue(r);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -40,14 +40,14 @@ public class ReferenceQueue<T> {
|
||||
*/
|
||||
public ReferenceQueue() { }
|
||||
|
||||
private static class Null extends ReferenceQueue {
|
||||
boolean enqueue(Reference r) {
|
||||
private static class Null<S> extends ReferenceQueue<S> {
|
||||
boolean enqueue(Reference<? extends S> r) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static ReferenceQueue NULL = new Null();
|
||||
static ReferenceQueue ENQUEUED = new Null();
|
||||
static ReferenceQueue<Object> NULL = new Null<>();
|
||||
static ReferenceQueue<Object> ENQUEUED = new Null<>();
|
||||
|
||||
static private class Lock { };
|
||||
private Lock lock = new Lock();
|
||||
@ -58,7 +58,7 @@ public class ReferenceQueue<T> {
|
||||
synchronized (lock) {
|
||||
// Check that since getting the lock this reference hasn't already been
|
||||
// enqueued (and even then removed)
|
||||
ReferenceQueue queue = r.queue;
|
||||
ReferenceQueue<?> queue = r.queue;
|
||||
if ((queue == NULL) || (queue == ENQUEUED)) {
|
||||
return false;
|
||||
}
|
||||
@ -75,10 +75,13 @@ public class ReferenceQueue<T> {
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
private Reference<? extends T> reallyPoll() { /* Must hold lock */
|
||||
Reference<? extends T> r = head;
|
||||
if (r != null) {
|
||||
head = (r.next == r) ? null : r.next;
|
||||
head = (r.next == r) ?
|
||||
null :
|
||||
r.next; // Unchecked due to the next field having a raw type in Reference
|
||||
r.queue = NULL;
|
||||
r.next = r;
|
||||
queueLength--;
|
||||
|
||||
@ -162,7 +162,7 @@ public final class Parameter implements AnnotatedElement {
|
||||
|
||||
/**
|
||||
* Returns the name of the parameter. If the parameter's name is
|
||||
* {@linkplain isNamePresent() present}, then this method returns
|
||||
* {@linkplain #isNamePresent() present}, then this method returns
|
||||
* the name provided by the class file. Otherwise, this method
|
||||
* synthesizes a name of the form argN, where N is the index of
|
||||
* the parameter in the descriptor of the method which declares
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,13 +38,13 @@ package java.math;
|
||||
*
|
||||
* @see BigInteger
|
||||
* @author Michael McCloskey
|
||||
* @author Timothy Buktu
|
||||
* @since 1.3
|
||||
*/
|
||||
|
||||
import java.util.Arrays;
|
||||
|
||||
import static java.math.BigInteger.LONG_MASK;
|
||||
import static java.math.BigDecimal.INFLATED;
|
||||
import static java.math.BigInteger.LONG_MASK;
|
||||
import java.util.Arrays;
|
||||
|
||||
class MutableBigInteger {
|
||||
/**
|
||||
@ -75,6 +75,24 @@ class MutableBigInteger {
|
||||
*/
|
||||
static final MutableBigInteger ONE = new MutableBigInteger(1);
|
||||
|
||||
/**
|
||||
* The minimum {@code intLen} for cancelling powers of two before
|
||||
* dividing.
|
||||
* If the number of ints is less than this threshold,
|
||||
* {@code divideKnuth} does not eliminate common powers of two from
|
||||
* the dividend and divisor.
|
||||
*/
|
||||
static final int KNUTH_POW2_THRESH_LEN = 6;
|
||||
|
||||
/**
|
||||
* The minimum number of trailing zero ints for cancelling powers of two
|
||||
* before dividing.
|
||||
* If the dividend and divisor don't share at least this many zero ints
|
||||
* at the end, {@code divideKnuth} does not eliminate common powers
|
||||
* of two from the dividend and divisor.
|
||||
*/
|
||||
static final int KNUTH_POW2_THRESH_ZEROS = 3;
|
||||
|
||||
// Constructors
|
||||
|
||||
/**
|
||||
@ -123,6 +141,20 @@ class MutableBigInteger {
|
||||
value = Arrays.copyOfRange(val.value, val.offset, val.offset + intLen);
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes this number an {@code n}-int number all of whose bits are ones.
|
||||
* Used by Burnikel-Ziegler division.
|
||||
* @param n number of ints in the {@code value} array
|
||||
* @return a number equal to {@code ((1<<(32*n)))-1}
|
||||
*/
|
||||
private void ones(int n) {
|
||||
if (n > value.length)
|
||||
value = new int[n];
|
||||
Arrays.fill(value, -1);
|
||||
offset = 0;
|
||||
intLen = n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Internal helper method to return the magnitude array. The caller is not
|
||||
* supposed to modify the returned array.
|
||||
@ -154,6 +186,14 @@ class MutableBigInteger {
|
||||
return new BigInteger(getMagnitudeArray(), sign);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts this number to a nonnegative {@code BigInteger}.
|
||||
*/
|
||||
BigInteger toBigInteger() {
|
||||
normalize();
|
||||
return toBigInteger(isZero() ? 0 : 1);
|
||||
}
|
||||
|
||||
/**
|
||||
* Convert this MutableBigInteger to BigDecimal object with the specified sign
|
||||
* and scale.
|
||||
@ -237,6 +277,32 @@ class MutableBigInteger {
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a value equal to what {@code b.leftShift(32*ints); return compare(b);}
|
||||
* would return, but doesn't change the value of {@code b}.
|
||||
*/
|
||||
private int compareShifted(MutableBigInteger b, int ints) {
|
||||
int blen = b.intLen;
|
||||
int alen = intLen - ints;
|
||||
if (alen < blen)
|
||||
return -1;
|
||||
if (alen > blen)
|
||||
return 1;
|
||||
|
||||
// Add Integer.MIN_VALUE to make the comparison act as unsigned integer
|
||||
// comparison.
|
||||
int[] bval = b.value;
|
||||
for (int i = offset, j = b.offset; i < alen + offset; i++, j++) {
|
||||
int b1 = value[i] + 0x80000000;
|
||||
int b2 = bval[j] + 0x80000000;
|
||||
if (b1 < b2)
|
||||
return -1;
|
||||
if (b1 > b2)
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Compare this against half of a MutableBigInteger object (Needed for
|
||||
* remainder tests).
|
||||
@ -247,7 +313,7 @@ class MutableBigInteger {
|
||||
int blen = b.intLen;
|
||||
int len = intLen;
|
||||
if (len <= 0)
|
||||
return blen <=0 ? 0 : -1;
|
||||
return blen <= 0 ? 0 : -1;
|
||||
if (len > blen)
|
||||
return 1;
|
||||
if (len < blen - 1)
|
||||
@ -274,7 +340,7 @@ class MutableBigInteger {
|
||||
return v < hb ? -1 : 1;
|
||||
carry = (bv & 1) << 31; // carray will be either 0x80000000 or 0
|
||||
}
|
||||
return carry == 0? 0 : -1;
|
||||
return carry == 0 ? 0 : -1;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -285,10 +351,10 @@ class MutableBigInteger {
|
||||
if (intLen == 0)
|
||||
return -1;
|
||||
int j, b;
|
||||
for (j=intLen-1; (j>0) && (value[j+offset]==0); j--)
|
||||
for (j=intLen-1; (j > 0) && (value[j+offset] == 0); j--)
|
||||
;
|
||||
b = value[j+offset];
|
||||
if (b==0)
|
||||
if (b == 0)
|
||||
return -1;
|
||||
return ((intLen-1-j)<<5) + Integer.numberOfTrailingZeros(b);
|
||||
}
|
||||
@ -329,11 +395,11 @@ class MutableBigInteger {
|
||||
int indexBound = index+intLen;
|
||||
do {
|
||||
index++;
|
||||
} while(index < indexBound && value[index]==0);
|
||||
} while(index < indexBound && value[index] == 0);
|
||||
|
||||
int numZeros = index - offset;
|
||||
intLen -= numZeros;
|
||||
offset = (intLen==0 ? 0 : offset+numZeros);
|
||||
offset = (intLen == 0 ? 0 : offset+numZeros);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -354,7 +420,7 @@ class MutableBigInteger {
|
||||
*/
|
||||
int[] toIntArray() {
|
||||
int[] result = new int[intLen];
|
||||
for(int i=0; i<intLen; i++)
|
||||
for(int i=0; i < intLen; i++)
|
||||
result[i] = value[offset+i];
|
||||
return result;
|
||||
}
|
||||
@ -440,7 +506,7 @@ class MutableBigInteger {
|
||||
boolean isNormal() {
|
||||
if (intLen + offset > value.length)
|
||||
return false;
|
||||
if (intLen ==0)
|
||||
if (intLen == 0)
|
||||
return true;
|
||||
return (value[offset] != 0);
|
||||
}
|
||||
@ -453,6 +519,17 @@ class MutableBigInteger {
|
||||
return b.toString();
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@link #rightShift(int)} but {@code n} can be greater than the length of the number.
|
||||
*/
|
||||
void safeRightShift(int n) {
|
||||
if (n/32 >= intLen) {
|
||||
reset();
|
||||
} else {
|
||||
rightShift(n);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Right shift this MutableBigInteger n bits. The MutableBigInteger is left
|
||||
* in normal form.
|
||||
@ -474,6 +551,15 @@ class MutableBigInteger {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@link #leftShift(int)} but {@code n} can be zero.
|
||||
*/
|
||||
void safeLeftShift(int n) {
|
||||
if (n > 0) {
|
||||
leftShift(n);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Left shift this MutableBigInteger n bits.
|
||||
*/
|
||||
@ -502,18 +588,18 @@ class MutableBigInteger {
|
||||
if (value.length < newLen) {
|
||||
// The array must grow
|
||||
int[] result = new int[newLen];
|
||||
for (int i=0; i<intLen; i++)
|
||||
for (int i=0; i < intLen; i++)
|
||||
result[i] = value[offset+i];
|
||||
setValue(result, newLen);
|
||||
} else if (value.length - offset >= newLen) {
|
||||
// Use space on right
|
||||
for(int i=0; i<newLen - intLen; i++)
|
||||
for(int i=0; i < newLen - intLen; i++)
|
||||
value[offset+intLen+i] = 0;
|
||||
} else {
|
||||
// Must use space on left
|
||||
for (int i=0; i<intLen; i++)
|
||||
for (int i=0; i < intLen; i++)
|
||||
value[i] = value[offset+i];
|
||||
for (int i=intLen; i<newLen; i++)
|
||||
for (int i=intLen; i < newLen; i++)
|
||||
value[i] = 0;
|
||||
offset = 0;
|
||||
}
|
||||
@ -590,7 +676,7 @@ class MutableBigInteger {
|
||||
private final void primitiveRightShift(int n) {
|
||||
int[] val = value;
|
||||
int n2 = 32 - n;
|
||||
for (int i=offset+intLen-1, c=val[i]; i>offset; i--) {
|
||||
for (int i=offset+intLen-1, c=val[i]; i > offset; i--) {
|
||||
int b = c;
|
||||
c = val[i-1];
|
||||
val[i] = (c << n2) | (b >>> n);
|
||||
@ -606,7 +692,7 @@ class MutableBigInteger {
|
||||
private final void primitiveLeftShift(int n) {
|
||||
int[] val = value;
|
||||
int n2 = 32 - n;
|
||||
for (int i=offset, c=val[i], m=i+intLen-1; i<m; i++) {
|
||||
for (int i=offset, c=val[i], m=i+intLen-1; i < m; i++) {
|
||||
int b = c;
|
||||
c = val[i+1];
|
||||
val[i] = (b << n) | (c >>> n2);
|
||||
@ -614,6 +700,35 @@ class MutableBigInteger {
|
||||
val[offset+intLen-1] <<= n;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a {@code BigInteger} equal to the {@code n}
|
||||
* low ints of this number.
|
||||
*/
|
||||
private BigInteger getLower(int n) {
|
||||
if (isZero()) {
|
||||
return BigInteger.ZERO;
|
||||
} else if (intLen < n) {
|
||||
return toBigInteger(1);
|
||||
} else {
|
||||
// strip zeros
|
||||
int len = n;
|
||||
while (len > 0 && value[offset+intLen-len] == 0)
|
||||
len--;
|
||||
int sign = len > 0 ? 1 : 0;
|
||||
return new BigInteger(Arrays.copyOfRange(value, offset+intLen-len, offset+intLen), sign);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Discards all ints whose index is greater than {@code n}.
|
||||
*/
|
||||
private void keepLower(int n) {
|
||||
if (intLen >= n) {
|
||||
offset += intLen - n;
|
||||
intLen = n;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the contents of two MutableBigInteger objects.The result
|
||||
* is placed within this MutableBigInteger.
|
||||
@ -630,7 +745,7 @@ class MutableBigInteger {
|
||||
long carry = 0;
|
||||
|
||||
// Add common parts of both numbers
|
||||
while(x>0 && y>0) {
|
||||
while(x > 0 && y > 0) {
|
||||
x--; y--;
|
||||
sum = (value[x+offset] & LONG_MASK) +
|
||||
(addend.value[y+addend.offset] & LONG_MASK) + carry;
|
||||
@ -639,7 +754,7 @@ class MutableBigInteger {
|
||||
}
|
||||
|
||||
// Add remainder of the longer number
|
||||
while(x>0) {
|
||||
while(x > 0) {
|
||||
x--;
|
||||
if (carry == 0 && result == value && rstart == (x + offset))
|
||||
return;
|
||||
@ -647,7 +762,7 @@ class MutableBigInteger {
|
||||
result[rstart--] = (int)sum;
|
||||
carry = sum >>> 32;
|
||||
}
|
||||
while(y>0) {
|
||||
while(y > 0) {
|
||||
y--;
|
||||
sum = (addend.value[y+addend.offset] & LONG_MASK) + carry;
|
||||
result[rstart--] = (int)sum;
|
||||
@ -673,6 +788,123 @@ class MutableBigInteger {
|
||||
offset = result.length - resultLen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the value of {@code addend} shifted {@code n} ints to the left.
|
||||
* Has the same effect as {@code addend.leftShift(32*ints); add(addend);}
|
||||
* but doesn't change the value of {@code addend}.
|
||||
*/
|
||||
void addShifted(MutableBigInteger addend, int n) {
|
||||
if (addend.isZero()) {
|
||||
return;
|
||||
}
|
||||
|
||||
int x = intLen;
|
||||
int y = addend.intLen + n;
|
||||
int resultLen = (intLen > y ? intLen : y);
|
||||
int[] result = (value.length < resultLen ? new int[resultLen] : value);
|
||||
|
||||
int rstart = result.length-1;
|
||||
long sum;
|
||||
long carry = 0;
|
||||
|
||||
// Add common parts of both numbers
|
||||
while (x > 0 && y > 0) {
|
||||
x--; y--;
|
||||
int bval = y+addend.offset < addend.value.length ? addend.value[y+addend.offset] : 0;
|
||||
sum = (value[x+offset] & LONG_MASK) +
|
||||
(bval & LONG_MASK) + carry;
|
||||
result[rstart--] = (int)sum;
|
||||
carry = sum >>> 32;
|
||||
}
|
||||
|
||||
// Add remainder of the longer number
|
||||
while (x > 0) {
|
||||
x--;
|
||||
if (carry == 0 && result == value && rstart == (x + offset)) {
|
||||
return;
|
||||
}
|
||||
sum = (value[x+offset] & LONG_MASK) + carry;
|
||||
result[rstart--] = (int)sum;
|
||||
carry = sum >>> 32;
|
||||
}
|
||||
while (y > 0) {
|
||||
y--;
|
||||
int bval = y+addend.offset < addend.value.length ? addend.value[y+addend.offset] : 0;
|
||||
sum = (bval & LONG_MASK) + carry;
|
||||
result[rstart--] = (int)sum;
|
||||
carry = sum >>> 32;
|
||||
}
|
||||
|
||||
if (carry > 0) { // Result must grow in length
|
||||
resultLen++;
|
||||
if (result.length < resultLen) {
|
||||
int temp[] = new int[resultLen];
|
||||
// Result one word longer from carry-out; copy low-order
|
||||
// bits into new result.
|
||||
System.arraycopy(result, 0, temp, 1, result.length);
|
||||
temp[0] = 1;
|
||||
result = temp;
|
||||
} else {
|
||||
result[rstart--] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
value = result;
|
||||
intLen = resultLen;
|
||||
offset = result.length - resultLen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Like {@link #addShifted(MutableBigInteger, int)} but {@code this.intLen} must
|
||||
* not be greater than {@code n}. In other words, concatenates {@code this}
|
||||
* and {@code addend}.
|
||||
*/
|
||||
void addDisjoint(MutableBigInteger addend, int n) {
|
||||
if (addend.isZero())
|
||||
return;
|
||||
|
||||
int x = intLen;
|
||||
int y = addend.intLen + n;
|
||||
int resultLen = (intLen > y ? intLen : y);
|
||||
int[] result;
|
||||
if (value.length < resultLen)
|
||||
result = new int[resultLen];
|
||||
else {
|
||||
result = value;
|
||||
Arrays.fill(value, offset+intLen, value.length, 0);
|
||||
}
|
||||
|
||||
int rstart = result.length-1;
|
||||
|
||||
// copy from this if needed
|
||||
System.arraycopy(value, offset, result, rstart+1-x, x);
|
||||
y -= x;
|
||||
rstart -= x;
|
||||
|
||||
int len = Math.min(y, addend.value.length-addend.offset);
|
||||
System.arraycopy(addend.value, addend.offset, result, rstart+1-y, len);
|
||||
|
||||
// zero the gap
|
||||
for (int i=rstart+1-y+len; i < rstart+1; i++)
|
||||
result[i] = 0;
|
||||
|
||||
value = result;
|
||||
intLen = resultLen;
|
||||
offset = result.length - resultLen;
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds the low {@code n} ints of {@code addend}.
|
||||
*/
|
||||
void addLower(MutableBigInteger addend, int n) {
|
||||
MutableBigInteger a = new MutableBigInteger(addend);
|
||||
if (a.offset + a.intLen >= n) {
|
||||
a.offset = a.offset + a.intLen - n;
|
||||
a.intLen = n;
|
||||
}
|
||||
a.normalize();
|
||||
add(a);
|
||||
}
|
||||
|
||||
/**
|
||||
* Subtracts the smaller of this and b from the larger and places the
|
||||
@ -704,7 +936,7 @@ class MutableBigInteger {
|
||||
int rstart = result.length - 1;
|
||||
|
||||
// Subtract common parts of both numbers
|
||||
while (y>0) {
|
||||
while (y > 0) {
|
||||
x--; y--;
|
||||
|
||||
diff = (a.value[x+a.offset] & LONG_MASK) -
|
||||
@ -712,7 +944,7 @@ class MutableBigInteger {
|
||||
result[rstart--] = (int)diff;
|
||||
}
|
||||
// Subtract remainder of longer number
|
||||
while (x>0) {
|
||||
while (x > 0) {
|
||||
x--;
|
||||
diff = (a.value[x+a.offset] & LONG_MASK) - ((int)-(diff>>32));
|
||||
result[rstart--] = (int)diff;
|
||||
@ -733,7 +965,7 @@ class MutableBigInteger {
|
||||
private int difference(MutableBigInteger b) {
|
||||
MutableBigInteger a = this;
|
||||
int sign = a.compare(b);
|
||||
if (sign ==0)
|
||||
if (sign == 0)
|
||||
return 0;
|
||||
if (sign < 0) {
|
||||
MutableBigInteger tmp = a;
|
||||
@ -746,14 +978,14 @@ class MutableBigInteger {
|
||||
int y = b.intLen;
|
||||
|
||||
// Subtract common parts of both numbers
|
||||
while (y>0) {
|
||||
while (y > 0) {
|
||||
x--; y--;
|
||||
diff = (a.value[a.offset+ x] & LONG_MASK) -
|
||||
(b.value[b.offset+ y] & LONG_MASK) - ((int)-(diff>>32));
|
||||
a.value[a.offset+x] = (int)diff;
|
||||
}
|
||||
// Subtract remainder of longer number
|
||||
while (x>0) {
|
||||
while (x > 0) {
|
||||
x--;
|
||||
diff = (a.value[a.offset+ x] & LONG_MASK) - ((int)-(diff>>32));
|
||||
a.value[a.offset+x] = (int)diff;
|
||||
@ -822,7 +1054,7 @@ class MutableBigInteger {
|
||||
|
||||
// Perform the multiplication word by word
|
||||
long ylong = y & LONG_MASK;
|
||||
int[] zval = (z.value.length<intLen+1 ? new int[intLen + 1]
|
||||
int[] zval = (z.value.length < intLen+1 ? new int[intLen + 1]
|
||||
: z.value);
|
||||
long carry = 0;
|
||||
for (int i = intLen-1; i >= 0; i--) {
|
||||
@ -906,6 +1138,31 @@ class MutableBigInteger {
|
||||
return rem;
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the quotient of this div b and places the quotient in the
|
||||
* provided MutableBigInteger objects and the remainder object is returned.
|
||||
*
|
||||
*/
|
||||
MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
return divide(b,quotient,true);
|
||||
}
|
||||
|
||||
MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient, boolean needRemainder) {
|
||||
if (intLen < BigInteger.BURNIKEL_ZIEGLER_THRESHOLD ||
|
||||
b.intLen < BigInteger.BURNIKEL_ZIEGLER_THRESHOLD) {
|
||||
return divideKnuth(b, quotient, needRemainder);
|
||||
} else {
|
||||
return divideAndRemainderBurnikelZiegler(b, quotient);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @see #divideKnuth(MutableBigInteger, MutableBigInteger, boolean)
|
||||
*/
|
||||
MutableBigInteger divideKnuth(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
return divideKnuth(b,quotient,true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Calculates the quotient of this div b and places the quotient in the
|
||||
* provided MutableBigInteger objects and the remainder object is returned.
|
||||
@ -917,38 +1174,34 @@ class MutableBigInteger {
|
||||
* changed.
|
||||
*
|
||||
*/
|
||||
MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
return divide(b,quotient,true);
|
||||
}
|
||||
|
||||
MutableBigInteger divide(MutableBigInteger b, MutableBigInteger quotient, boolean needReminder) {
|
||||
MutableBigInteger divideKnuth(MutableBigInteger b, MutableBigInteger quotient, boolean needRemainder) {
|
||||
if (b.intLen == 0)
|
||||
throw new ArithmeticException("BigInteger divide by zero");
|
||||
|
||||
// Dividend is zero
|
||||
if (intLen == 0) {
|
||||
quotient.intLen = quotient.offset;
|
||||
return needReminder ? new MutableBigInteger() : null;
|
||||
quotient.intLen = quotient.offset = 0;
|
||||
return needRemainder ? new MutableBigInteger() : null;
|
||||
}
|
||||
|
||||
int cmp = compare(b);
|
||||
// Dividend less than divisor
|
||||
if (cmp < 0) {
|
||||
quotient.intLen = quotient.offset = 0;
|
||||
return needReminder ? new MutableBigInteger(this) : null;
|
||||
return needRemainder ? new MutableBigInteger(this) : null;
|
||||
}
|
||||
// Dividend equal to divisor
|
||||
if (cmp == 0) {
|
||||
quotient.value[0] = quotient.intLen = 1;
|
||||
quotient.offset = 0;
|
||||
return needReminder ? new MutableBigInteger() : null;
|
||||
return needRemainder ? new MutableBigInteger() : null;
|
||||
}
|
||||
|
||||
quotient.clear();
|
||||
// Special case one word divisor
|
||||
if (b.intLen == 1) {
|
||||
int r = divideOneWord(b.value[b.offset], quotient);
|
||||
if(needReminder) {
|
||||
if(needRemainder) {
|
||||
if (r == 0)
|
||||
return new MutableBigInteger();
|
||||
return new MutableBigInteger(r);
|
||||
@ -956,7 +1209,220 @@ class MutableBigInteger {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return divideMagnitude(b, quotient, needReminder);
|
||||
|
||||
// Cancel common powers of two if we're above the KNUTH_POW2_* thresholds
|
||||
if (intLen >= KNUTH_POW2_THRESH_LEN) {
|
||||
int trailingZeroBits = Math.min(getLowestSetBit(), b.getLowestSetBit());
|
||||
if (trailingZeroBits >= KNUTH_POW2_THRESH_ZEROS*32) {
|
||||
MutableBigInteger a = new MutableBigInteger(this);
|
||||
b = new MutableBigInteger(b);
|
||||
a.rightShift(trailingZeroBits);
|
||||
b.rightShift(trailingZeroBits);
|
||||
MutableBigInteger r = a.divideKnuth(b, quotient);
|
||||
r.leftShift(trailingZeroBits);
|
||||
return r;
|
||||
}
|
||||
}
|
||||
|
||||
return divideMagnitude(b, quotient, needRemainder);
|
||||
}
|
||||
|
||||
/**
|
||||
* Computes {@code this/b} and {@code this%b} using the
|
||||
* <a href="http://cr.yp.to/bib/1998/burnikel.ps"> Burnikel-Ziegler algorithm</a>.
|
||||
* This method implements algorithm 3 from pg. 9 of the Burnikel-Ziegler paper.
|
||||
* The parameter beta was chosen to b 2<sup>32</sup> so almost all shifts are
|
||||
* multiples of 32 bits.<br/>
|
||||
* {@code this} and {@code b} must be nonnegative.
|
||||
* @param b the divisor
|
||||
* @param quotient output parameter for {@code this/b}
|
||||
* @return the remainder
|
||||
*/
|
||||
MutableBigInteger divideAndRemainderBurnikelZiegler(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
int r = intLen;
|
||||
int s = b.intLen;
|
||||
|
||||
if (r < s) {
|
||||
return this;
|
||||
} else {
|
||||
// Unlike Knuth division, we don't check for common powers of two here because
|
||||
// BZ already runs faster if both numbers contain powers of two and cancelling them has no
|
||||
// additional benefit.
|
||||
|
||||
// step 1: let m = min{2^k | (2^k)*BURNIKEL_ZIEGLER_THRESHOLD > s}
|
||||
int m = 1 << (32-Integer.numberOfLeadingZeros(s/BigInteger.BURNIKEL_ZIEGLER_THRESHOLD));
|
||||
|
||||
int j = (s+m-1) / m; // step 2a: j = ceil(s/m)
|
||||
int n = j * m; // step 2b: block length in 32-bit units
|
||||
int n32 = 32 * n; // block length in bits
|
||||
int sigma = Math.max(0, n32 - b.bitLength()); // step 3: sigma = max{T | (2^T)*B < beta^n}
|
||||
MutableBigInteger bShifted = new MutableBigInteger(b);
|
||||
bShifted.safeLeftShift(sigma); // step 4a: shift b so its length is a multiple of n
|
||||
safeLeftShift(sigma); // step 4b: shift this by the same amount
|
||||
|
||||
// step 5: t is the number of blocks needed to accommodate this plus one additional bit
|
||||
int t = (bitLength()+n32) / n32;
|
||||
if (t < 2) {
|
||||
t = 2;
|
||||
}
|
||||
|
||||
// step 6: conceptually split this into blocks a[t-1], ..., a[0]
|
||||
MutableBigInteger a1 = getBlock(t-1, t, n); // the most significant block of this
|
||||
|
||||
// step 7: z[t-2] = [a[t-1], a[t-2]]
|
||||
MutableBigInteger z = getBlock(t-2, t, n); // the second to most significant block
|
||||
z.addDisjoint(a1, n); // z[t-2]
|
||||
|
||||
// do schoolbook division on blocks, dividing 2-block numbers by 1-block numbers
|
||||
MutableBigInteger qi = new MutableBigInteger();
|
||||
MutableBigInteger ri;
|
||||
quotient.offset = quotient.intLen = 0;
|
||||
for (int i=t-2; i > 0; i--) {
|
||||
// step 8a: compute (qi,ri) such that z=b*qi+ri
|
||||
ri = z.divide2n1n(bShifted, qi);
|
||||
|
||||
// step 8b: z = [ri, a[i-1]]
|
||||
z = getBlock(i-1, t, n); // a[i-1]
|
||||
z.addDisjoint(ri, n);
|
||||
quotient.addShifted(qi, i*n); // update q (part of step 9)
|
||||
}
|
||||
// final iteration of step 8: do the loop one more time for i=0 but leave z unchanged
|
||||
ri = z.divide2n1n(bShifted, qi);
|
||||
quotient.add(qi);
|
||||
|
||||
ri.rightShift(sigma); // step 9: this and b were shifted, so shift back
|
||||
return ri;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method implements algorithm 1 from pg. 4 of the Burnikel-Ziegler paper.
|
||||
* It divides a 2n-digit number by a n-digit number.<br/>
|
||||
* The parameter beta is 2<sup>32</sup> so all shifts are multiples of 32 bits.
|
||||
* <br/>
|
||||
* {@code this} must be a nonnegative number such that {@code this.bitLength() <= 2*b.bitLength()}
|
||||
* @param b a positive number such that {@code b.bitLength()} is even
|
||||
* @param quotient output parameter for {@code this/b}
|
||||
* @return {@code this%b}
|
||||
*/
|
||||
private MutableBigInteger divide2n1n(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
int n = b.intLen;
|
||||
|
||||
// step 1: base case
|
||||
if (n%2 != 0 || n < BigInteger.BURNIKEL_ZIEGLER_THRESHOLD) {
|
||||
return divideKnuth(b, quotient);
|
||||
}
|
||||
|
||||
// step 2: view this as [a1,a2,a3,a4] where each ai is n/2 ints or less
|
||||
MutableBigInteger aUpper = new MutableBigInteger(this);
|
||||
aUpper.safeRightShift(32*(n/2)); // aUpper = [a1,a2,a3]
|
||||
keepLower(n/2); // this = a4
|
||||
|
||||
// step 3: q1=aUpper/b, r1=aUpper%b
|
||||
MutableBigInteger q1 = new MutableBigInteger();
|
||||
MutableBigInteger r1 = aUpper.divide3n2n(b, q1);
|
||||
|
||||
// step 4: quotient=[r1,this]/b, r2=[r1,this]%b
|
||||
addDisjoint(r1, n/2); // this = [r1,this]
|
||||
MutableBigInteger r2 = divide3n2n(b, quotient);
|
||||
|
||||
// step 5: let quotient=[q1,quotient] and return r2
|
||||
quotient.addDisjoint(q1, n/2);
|
||||
return r2;
|
||||
}
|
||||
|
||||
/**
|
||||
* This method implements algorithm 2 from pg. 5 of the Burnikel-Ziegler paper.
|
||||
* It divides a 3n-digit number by a 2n-digit number.<br/>
|
||||
* The parameter beta is 2<sup>32</sup> so all shifts are multiples of 32 bits.<br/>
|
||||
* <br/>
|
||||
* {@code this} must be a nonnegative number such that {@code 2*this.bitLength() <= 3*b.bitLength()}
|
||||
* @param quotient output parameter for {@code this/b}
|
||||
* @return {@code this%b}
|
||||
*/
|
||||
private MutableBigInteger divide3n2n(MutableBigInteger b, MutableBigInteger quotient) {
|
||||
int n = b.intLen / 2; // half the length of b in ints
|
||||
|
||||
// step 1: view this as [a1,a2,a3] where each ai is n ints or less; let a12=[a1,a2]
|
||||
MutableBigInteger a12 = new MutableBigInteger(this);
|
||||
a12.safeRightShift(32*n);
|
||||
|
||||
// step 2: view b as [b1,b2] where each bi is n ints or less
|
||||
MutableBigInteger b1 = new MutableBigInteger(b);
|
||||
b1.safeRightShift(n * 32);
|
||||
BigInteger b2 = b.getLower(n);
|
||||
|
||||
MutableBigInteger r;
|
||||
MutableBigInteger d;
|
||||
if (compareShifted(b, n) < 0) {
|
||||
// step 3a: if a1<b1, let quotient=a12/b1 and r=a12%b1
|
||||
r = a12.divide2n1n(b1, quotient);
|
||||
|
||||
// step 4: d=quotient*b2
|
||||
d = new MutableBigInteger(quotient.toBigInteger().multiply(b2));
|
||||
} else {
|
||||
// step 3b: if a1>=b1, let quotient=beta^n-1 and r=a12-b1*2^n+b1
|
||||
quotient.ones(n);
|
||||
a12.add(b1);
|
||||
b1.leftShift(32*n);
|
||||
a12.subtract(b1);
|
||||
r = a12;
|
||||
|
||||
// step 4: d=quotient*b2=(b2 << 32*n) - b2
|
||||
d = new MutableBigInteger(b2);
|
||||
d.leftShift(32 * n);
|
||||
d.subtract(new MutableBigInteger(b2));
|
||||
}
|
||||
|
||||
// step 5: r = r*beta^n + a3 - d (paper says a4)
|
||||
// However, don't subtract d until after the while loop so r doesn't become negative
|
||||
r.leftShift(32 * n);
|
||||
r.addLower(this, n);
|
||||
|
||||
// step 6: add b until r>=d
|
||||
while (r.compare(d) < 0) {
|
||||
r.add(b);
|
||||
quotient.subtract(MutableBigInteger.ONE);
|
||||
}
|
||||
r.subtract(d);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a {@code MutableBigInteger} containing {@code blockLength} ints from
|
||||
* {@code this} number, starting at {@code index*blockLength}.<br/>
|
||||
* Used by Burnikel-Ziegler division.
|
||||
* @param index the block index
|
||||
* @param numBlocks the total number of blocks in {@code this} number
|
||||
* @param blockLength length of one block in units of 32 bits
|
||||
* @return
|
||||
*/
|
||||
private MutableBigInteger getBlock(int index, int numBlocks, int blockLength) {
|
||||
int blockStart = index * blockLength;
|
||||
if (blockStart >= intLen) {
|
||||
return new MutableBigInteger();
|
||||
}
|
||||
|
||||
int blockEnd;
|
||||
if (index == numBlocks-1) {
|
||||
blockEnd = intLen;
|
||||
} else {
|
||||
blockEnd = (index+1) * blockLength;
|
||||
}
|
||||
if (blockEnd > intLen) {
|
||||
return new MutableBigInteger();
|
||||
}
|
||||
|
||||
int[] newVal = Arrays.copyOfRange(value, offset+intLen-blockEnd, offset+intLen-blockStart);
|
||||
return new MutableBigInteger(newVal);
|
||||
}
|
||||
|
||||
/** @see BigInteger#bitLength() */
|
||||
int bitLength() {
|
||||
if (intLen == 0)
|
||||
return 0;
|
||||
return intLen*32 - Integer.numberOfLeadingZeros(value[offset]);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1006,7 +1472,7 @@ class MutableBigInteger {
|
||||
*/
|
||||
private MutableBigInteger divideMagnitude(MutableBigInteger div,
|
||||
MutableBigInteger quotient,
|
||||
boolean needReminder ) {
|
||||
boolean needRemainder ) {
|
||||
// assert div.intLen > 1
|
||||
// D1 normalize the divisor
|
||||
int shift = Integer.numberOfLeadingZeros(div.value[div.offset]);
|
||||
@ -1017,7 +1483,7 @@ class MutableBigInteger {
|
||||
if (shift > 0) {
|
||||
divisor = new int[dlen];
|
||||
copyAndShift(div.value,div.offset,dlen,divisor,0,shift);
|
||||
if(Integer.numberOfLeadingZeros(value[offset])>=shift) {
|
||||
if (Integer.numberOfLeadingZeros(value[offset]) >= shift) {
|
||||
int[] remarr = new int[intLen + 1];
|
||||
rem = new MutableBigInteger(remarr);
|
||||
rem.intLen = intLen;
|
||||
@ -1070,7 +1536,7 @@ class MutableBigInteger {
|
||||
int dl = divisor[1];
|
||||
|
||||
// D2 Initialize j
|
||||
for(int j=0; j<limit-1; j++) {
|
||||
for (int j=0; j < limit-1; j++) {
|
||||
// D3 Calculate qhat
|
||||
// estimate qhat
|
||||
int qhat = 0;
|
||||
@ -1176,7 +1642,7 @@ class MutableBigInteger {
|
||||
// D4 Multiply and subtract
|
||||
int borrow;
|
||||
rem.value[limit - 1 + rem.offset] = 0;
|
||||
if(needReminder)
|
||||
if(needRemainder)
|
||||
borrow = mulsub(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
|
||||
else
|
||||
borrow = mulsubBorrow(rem.value, divisor, qhat, dlen, limit - 1 + rem.offset);
|
||||
@ -1184,7 +1650,7 @@ class MutableBigInteger {
|
||||
// D5 Test remainder
|
||||
if (borrow + 0x80000000 > nh2) {
|
||||
// D6 Add back
|
||||
if(needReminder)
|
||||
if(needRemainder)
|
||||
divadd(divisor, rem.value, limit - 1 + 1 + rem.offset);
|
||||
qhat--;
|
||||
}
|
||||
@ -1194,14 +1660,14 @@ class MutableBigInteger {
|
||||
}
|
||||
|
||||
|
||||
if(needReminder) {
|
||||
if (needRemainder) {
|
||||
// D8 Unnormalize
|
||||
if (shift > 0)
|
||||
rem.rightShift(shift);
|
||||
rem.normalize();
|
||||
}
|
||||
quotient.normalize();
|
||||
return needReminder ? rem : null;
|
||||
return needRemainder ? rem : null;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1367,7 +1833,7 @@ class MutableBigInteger {
|
||||
* This method divides a long quantity by an int to estimate
|
||||
* qhat for two multi precision numbers. It is used when
|
||||
* the signed value of n is less than zero.
|
||||
* Returns long value where high 32 bits contain reminder value and
|
||||
* Returns long value where high 32 bits contain remainder value and
|
||||
* low 32 bits contain quotient value.
|
||||
*/
|
||||
static long divWord(long n, int d) {
|
||||
@ -1436,7 +1902,7 @@ class MutableBigInteger {
|
||||
}
|
||||
|
||||
// step B2
|
||||
boolean uOdd = (k==s1);
|
||||
boolean uOdd = (k == s1);
|
||||
MutableBigInteger t = uOdd ? v: u;
|
||||
int tsign = uOdd ? -1 : 1;
|
||||
|
||||
@ -1478,9 +1944,9 @@ class MutableBigInteger {
|
||||
* Calculate GCD of a and b interpreted as unsigned integers.
|
||||
*/
|
||||
static int binaryGcd(int a, int b) {
|
||||
if (b==0)
|
||||
if (b == 0)
|
||||
return a;
|
||||
if (a==0)
|
||||
if (a == 0)
|
||||
return b;
|
||||
|
||||
// Right shift a & b till their last bits equal to 1.
|
||||
@ -1582,7 +2048,7 @@ class MutableBigInteger {
|
||||
return result;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Returns the multiplicative inverse of val mod 2^32. Assumes val is odd.
|
||||
*/
|
||||
static int inverseMod32(int val) {
|
||||
@ -1595,7 +2061,7 @@ class MutableBigInteger {
|
||||
return t;
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* Calculate the multiplicative inverse of 2^k mod mod, where mod is odd.
|
||||
*/
|
||||
static MutableBigInteger modInverseBP2(MutableBigInteger mod, int k) {
|
||||
@ -1631,7 +2097,7 @@ class MutableBigInteger {
|
||||
}
|
||||
|
||||
// The Almost Inverse Algorithm
|
||||
while(!f.isOne()) {
|
||||
while (!f.isOne()) {
|
||||
// If gcd(f, g) != 1, number is not invertible modulo mod
|
||||
if (f.isZero())
|
||||
throw new ArithmeticException("BigInteger not invertible.");
|
||||
@ -1665,7 +2131,7 @@ class MutableBigInteger {
|
||||
return fixup(c, p, k);
|
||||
}
|
||||
|
||||
/*
|
||||
/**
|
||||
* The Fixup Algorithm
|
||||
* Calculates X such that X = C * 2^(-k) (mod P)
|
||||
* Assumes C<P and P is odd.
|
||||
@ -1676,7 +2142,7 @@ class MutableBigInteger {
|
||||
// Set r to the multiplicative inverse of p mod 2^32
|
||||
int r = -inverseMod32(p.value[p.offset+p.intLen-1]);
|
||||
|
||||
for(int i=0, numWords = k >> 5; i<numWords; i++) {
|
||||
for (int i=0, numWords = k >> 5; i < numWords; i++) {
|
||||
// V = R * c (mod 2^j)
|
||||
int v = r * c.value[c.offset + c.intLen-1];
|
||||
// c = c + (v * p)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2004, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -103,17 +103,17 @@ class Authenticator {
|
||||
* Sets the authenticator that will be used by the networking code
|
||||
* when a proxy or an HTTP server asks for authentication.
|
||||
* <p>
|
||||
* First, if there is a security manager, its <code>checkPermission</code>
|
||||
* First, if there is a security manager, its {@code checkPermission}
|
||||
* method is called with a
|
||||
* <code>NetPermission("setDefaultAuthenticator")</code> permission.
|
||||
* {@code NetPermission("setDefaultAuthenticator")} permission.
|
||||
* This may result in a java.lang.SecurityException.
|
||||
*
|
||||
* @param a The authenticator to be set. If a is <code>null</code> then
|
||||
* @param a The authenticator to be set. If a is {@code null} then
|
||||
* any previously set authenticator is removed.
|
||||
*
|
||||
* @throws SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* setting the default authenticator.
|
||||
*
|
||||
* @see SecurityManager#checkPermission
|
||||
@ -134,9 +134,9 @@ class Authenticator {
|
||||
* Ask the authenticator that has been registered with the system
|
||||
* for a password.
|
||||
* <p>
|
||||
* First, if there is a security manager, its <code>checkPermission</code>
|
||||
* First, if there is a security manager, its {@code checkPermission}
|
||||
* method is called with a
|
||||
* <code>NetPermission("requestPasswordAuthentication")</code> permission.
|
||||
* {@code NetPermission("requestPasswordAuthentication")} permission.
|
||||
* This may result in a java.lang.SecurityException.
|
||||
*
|
||||
* @param addr The InetAddress of the site requesting authorization,
|
||||
@ -151,7 +151,7 @@ class Authenticator {
|
||||
*
|
||||
* @throws SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* the password authentication request.
|
||||
*
|
||||
* @see SecurityManager#checkPermission
|
||||
@ -193,9 +193,9 @@ class Authenticator {
|
||||
* because the hostname can be provided in cases where the InetAddress
|
||||
* is not available.
|
||||
* <p>
|
||||
* First, if there is a security manager, its <code>checkPermission</code>
|
||||
* First, if there is a security manager, its {@code checkPermission}
|
||||
* method is called with a
|
||||
* <code>NetPermission("requestPasswordAuthentication")</code> permission.
|
||||
* {@code NetPermission("requestPasswordAuthentication")} permission.
|
||||
* This may result in a java.lang.SecurityException.
|
||||
*
|
||||
* @param host The hostname of the site requesting authentication.
|
||||
@ -211,7 +211,7 @@ class Authenticator {
|
||||
*
|
||||
* @throws SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* the password authentication request.
|
||||
*
|
||||
* @see SecurityManager#checkPermission
|
||||
@ -254,9 +254,9 @@ class Authenticator {
|
||||
* Ask the authenticator that has been registered with the system
|
||||
* for a password.
|
||||
* <p>
|
||||
* First, if there is a security manager, its <code>checkPermission</code>
|
||||
* First, if there is a security manager, its {@code checkPermission}
|
||||
* method is called with a
|
||||
* <code>NetPermission("requestPasswordAuthentication")</code> permission.
|
||||
* {@code NetPermission("requestPasswordAuthentication")} permission.
|
||||
* This may result in a java.lang.SecurityException.
|
||||
*
|
||||
* @param host The hostname of the site requesting authentication.
|
||||
@ -275,7 +275,7 @@ class Authenticator {
|
||||
*
|
||||
* @throws SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* the password authentication request.
|
||||
*
|
||||
* @see SecurityManager#checkPermission
|
||||
@ -320,8 +320,8 @@ class Authenticator {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the <code>hostname</code> of the
|
||||
* site or proxy requesting authentication, or <code>null</code>
|
||||
* Gets the {@code hostname} of the
|
||||
* site or proxy requesting authentication, or {@code null}
|
||||
* if not available.
|
||||
*
|
||||
* @return the hostname of the connection requiring authentication, or null
|
||||
@ -333,8 +333,8 @@ class Authenticator {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the <code>InetAddress</code> of the
|
||||
* site requesting authorization, or <code>null</code>
|
||||
* Gets the {@code InetAddress} of the
|
||||
* site requesting authorization, or {@code null}
|
||||
* if not available.
|
||||
*
|
||||
* @return the InetAddress of the site requesting authorization, or null
|
||||
@ -346,7 +346,7 @@ class Authenticator {
|
||||
|
||||
/**
|
||||
* Gets the port number for the requested connection.
|
||||
* @return an <code>int</code> indicating the
|
||||
* @return an {@code int} indicating the
|
||||
* port for the requested connection.
|
||||
*/
|
||||
protected final int getRequestingPort() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,21 +28,21 @@ package java.net;
|
||||
import java.io.IOException;
|
||||
|
||||
/**
|
||||
* The abstract class <code>ContentHandler</code> is the superclass
|
||||
* of all classes that read an <code>Object</code> from a
|
||||
* <code>URLConnection</code>.
|
||||
* The abstract class {@code ContentHandler} is the superclass
|
||||
* of all classes that read an {@code Object} from a
|
||||
* {@code URLConnection}.
|
||||
* <p>
|
||||
* An application does not generally call the
|
||||
* <code>getContent</code> method in this class directly. Instead, an
|
||||
* application calls the <code>getContent</code> method in class
|
||||
* <code>URL</code> or in <code>URLConnection</code>.
|
||||
* {@code getContent} method in this class directly. Instead, an
|
||||
* application calls the {@code getContent} method in class
|
||||
* {@code URL} or in {@code URLConnection}.
|
||||
* The application's content handler factory (an instance of a class that
|
||||
* implements the interface <code>ContentHandlerFactory</code> set
|
||||
* up by a call to <code>setContentHandler</code>) is
|
||||
* called with a <code>String</code> giving the MIME type of the
|
||||
* implements the interface {@code ContentHandlerFactory} set
|
||||
* up by a call to {@code setContentHandler}) is
|
||||
* called with a {@code String} giving the MIME type of the
|
||||
* object being received on the socket. The factory returns an
|
||||
* instance of a subclass of <code>ContentHandler</code>, and its
|
||||
* <code>getContent</code> method is called to create the object.
|
||||
* instance of a subclass of {@code ContentHandler}, and its
|
||||
* {@code getContent} method is called to create the object.
|
||||
* <p>
|
||||
* If no content handler could be found, URLConnection will
|
||||
* look for a content handler in a user-defineable set of places.
|
||||
@ -75,7 +75,7 @@ abstract public class ContentHandler {
|
||||
* creates an object from it.
|
||||
*
|
||||
* @param urlc a URL connection.
|
||||
* @return the object read by the <code>ContentHandler</code>.
|
||||
* @return the object read by the {@code ContentHandler}.
|
||||
* @exception IOException if an I/O error occurs while reading the object.
|
||||
*/
|
||||
abstract public Object getContent(URLConnection urlc) throws IOException;
|
||||
@ -90,7 +90,7 @@ abstract public class ContentHandler {
|
||||
*
|
||||
* @param urlc a URL connection.
|
||||
* @param classes an array of types requested
|
||||
* @return the object read by the <code>ContentHandler</code> that is
|
||||
* @return the object read by the {@code ContentHandler} that is
|
||||
* the first match of the suggested types.
|
||||
* null if none of the requested are supported.
|
||||
* @exception IOException if an I/O error occurs while reading the object.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1997, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,10 +28,10 @@ package java.net;
|
||||
/**
|
||||
* This interface defines a factory for content handlers. An
|
||||
* implementation of this interface should map a MIME type into an
|
||||
* instance of <code>ContentHandler</code>.
|
||||
* instance of {@code ContentHandler}.
|
||||
* <p>
|
||||
* This interface is used by the <code>URLStreamHandler</code> class
|
||||
* to create a <code>ContentHandler</code> for a MIME type.
|
||||
* This interface is used by the {@code URLStreamHandler} class
|
||||
* to create a {@code ContentHandler} for a MIME type.
|
||||
*
|
||||
* @author James Gosling
|
||||
* @see java.net.ContentHandler
|
||||
@ -40,13 +40,13 @@ package java.net;
|
||||
*/
|
||||
public interface ContentHandlerFactory {
|
||||
/**
|
||||
* Creates a new <code>ContentHandler</code> to read an object from
|
||||
* a <code>URLStreamHandler</code>.
|
||||
* Creates a new {@code ContentHandler} to read an object from
|
||||
* a {@code URLStreamHandler}.
|
||||
*
|
||||
* @param mimetype the MIME type for which a content handler is desired.
|
||||
|
||||
* @return a new <code>ContentHandler</code> to read an object from a
|
||||
* <code>URLStreamHandler</code>.
|
||||
* @return a new {@code ContentHandler} to read an object from a
|
||||
* {@code URLStreamHandler}.
|
||||
* @see java.net.ContentHandler
|
||||
* @see java.net.URLStreamHandler
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -66,7 +66,7 @@ public abstract class CookieHandler {
|
||||
* there is no system-wide cookie handler currently set.
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("getCookieHandler")</tt>
|
||||
* {@link NetPermission}{@code ("getCookieHandler")}
|
||||
* @see #setDefault(CookieHandler)
|
||||
*/
|
||||
public synchronized static CookieHandler getDefault() {
|
||||
@ -83,10 +83,10 @@ public abstract class CookieHandler {
|
||||
* Note: non-standard http protocol handlers may ignore this setting.
|
||||
*
|
||||
* @param cHandler The HTTP cookie handler, or
|
||||
* <code>null</code> to unset.
|
||||
* {@code null} to unset.
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("setCookieHandler")</tt>
|
||||
* {@link NetPermission}{@code ("setCookieHandler")}
|
||||
* @see #getDefault()
|
||||
*/
|
||||
public synchronized static void setDefault(CookieHandler cHandler) {
|
||||
@ -114,7 +114,7 @@ public abstract class CookieHandler {
|
||||
* called after all request headers related to choosing cookies
|
||||
* are added, and before the request is sent.</P>
|
||||
*
|
||||
* @param uri a <code>URI</code> representing the intended use for the
|
||||
* @param uri a {@code URI} representing the intended use for the
|
||||
* cookies
|
||||
* @param requestHeaders - a Map from request header
|
||||
* field names to lists of field values representing
|
||||
@ -136,7 +136,7 @@ public abstract class CookieHandler {
|
||||
* fields that are named Set-Cookie2, present in the response
|
||||
* headers into a cookie cache.
|
||||
*
|
||||
* @param uri a <code>URI</code> where the cookies come from
|
||||
* @param uri a {@code URI} where the cookies come from
|
||||
* @param responseHeaders an immutable map from field names to
|
||||
* lists of field values representing the response
|
||||
* header fields returned
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -131,7 +131,7 @@ public class CookieManager extends CookieHandler
|
||||
*
|
||||
* <p>This constructor will create new cookie manager with default
|
||||
* cookie store and accept policy. The effect is same as
|
||||
* <tt>CookieManager(null, null)</tt>.
|
||||
* {@code CookieManager(null, null)}.
|
||||
*/
|
||||
public CookieManager() {
|
||||
this(null, null);
|
||||
@ -141,12 +141,12 @@ public class CookieManager extends CookieHandler
|
||||
/**
|
||||
* Create a new cookie manager with specified cookie store and cookie policy.
|
||||
*
|
||||
* @param store a <tt>CookieStore</tt> to be used by cookie manager.
|
||||
* if <tt>null</tt>, cookie manager will use a default one,
|
||||
* @param store a {@code CookieStore} to be used by cookie manager.
|
||||
* if {@code null}, cookie manager will use a default one,
|
||||
* which is an in-memory CookieStore implmentation.
|
||||
* @param cookiePolicy a <tt>CookiePolicy</tt> instance
|
||||
* @param cookiePolicy a {@code CookiePolicy} instance
|
||||
* to be used by cookie manager as policy callback.
|
||||
* if <tt>null</tt>, ACCEPT_ORIGINAL_SERVER will
|
||||
* if {@code null}, ACCEPT_ORIGINAL_SERVER will
|
||||
* be used.
|
||||
*/
|
||||
public CookieManager(CookieStore store,
|
||||
@ -170,11 +170,11 @@ public class CookieManager extends CookieHandler
|
||||
/**
|
||||
* To set the cookie policy of this cookie manager.
|
||||
*
|
||||
* <p> A instance of <tt>CookieManager</tt> will have
|
||||
* <p> A instance of {@code CookieManager} will have
|
||||
* cookie policy ACCEPT_ORIGINAL_SERVER by default. Users always
|
||||
* can call this method to set another cookie policy.
|
||||
*
|
||||
* @param cookiePolicy the cookie policy. Can be <tt>null</tt>, which
|
||||
* @param cookiePolicy the cookie policy. Can be {@code null}, which
|
||||
* has no effects on current cookie policy.
|
||||
*/
|
||||
public void setCookiePolicy(CookiePolicy cookiePolicy) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -71,8 +71,8 @@ public interface CookiePolicy {
|
||||
*
|
||||
* @param uri the URI to consult accept policy with
|
||||
* @param cookie the HttpCookie object in question
|
||||
* @return <tt>true</tt> if this cookie should be accepted;
|
||||
* otherwise, <tt>false</tt>
|
||||
* @return {@code true} if this cookie should be accepted;
|
||||
* otherwise, {@code false}
|
||||
*/
|
||||
public boolean shouldAccept(URI uri, HttpCookie cookie);
|
||||
}
|
||||
|
||||
@ -32,8 +32,8 @@ import java.util.Map;
|
||||
* A CookieStore object represents a storage for cookie. Can store and retrieve
|
||||
* cookies.
|
||||
*
|
||||
* <p>{@link CookieManager} will call <tt>CookieStore.add</tt> to save cookies
|
||||
* for every incoming HTTP response, and call <tt>CookieStore.get</tt> to
|
||||
* <p>{@link CookieManager} will call {@code CookieStore.add} to save cookies
|
||||
* for every incoming HTTP response, and call {@code CookieStore.get} to
|
||||
* retrieve cookie for every outgoing HTTP request. A CookieStore
|
||||
* is responsible for removing HttpCookie instances which have expired.
|
||||
*
|
||||
@ -55,11 +55,11 @@ public interface CookieStore {
|
||||
* then it is replaced with the new one.
|
||||
*
|
||||
* @param uri the uri this cookie associated with.
|
||||
* if <tt>null</tt>, this cookie will not be associated
|
||||
* if {@code null}, this cookie will not be associated
|
||||
* with an URI
|
||||
* @param cookie the cookie to store
|
||||
*
|
||||
* @throws NullPointerException if <tt>cookie</tt> is <tt>null</tt>
|
||||
* @throws NullPointerException if {@code cookie} is {@code null}
|
||||
*
|
||||
* @see #get
|
||||
*
|
||||
@ -77,7 +77,7 @@ public interface CookieStore {
|
||||
*
|
||||
* @param uri the uri associated with the cookies to be returned
|
||||
*
|
||||
* @throws NullPointerException if <tt>uri</tt> is <tt>null</tt>
|
||||
* @throws NullPointerException if {@code uri} is {@code null}
|
||||
*
|
||||
* @see #add
|
||||
*
|
||||
@ -108,14 +108,14 @@ public interface CookieStore {
|
||||
* Remove a cookie from store.
|
||||
*
|
||||
* @param uri the uri this cookie associated with.
|
||||
* if <tt>null</tt>, the cookie to be removed is not associated
|
||||
* with an URI when added; if not <tt>null</tt>, the cookie
|
||||
* if {@code null}, the cookie to be removed is not associated
|
||||
* with an URI when added; if not {@code null}, the cookie
|
||||
* to be removed is associated with the given URI when added.
|
||||
* @param cookie the cookie to remove
|
||||
*
|
||||
* @return <tt>true</tt> if this store contained the specified cookie
|
||||
* @return {@code true} if this store contained the specified cookie
|
||||
*
|
||||
* @throws NullPointerException if <tt>cookie</tt> is <tt>null</tt>
|
||||
* @throws NullPointerException if {@code cookie} is {@code null}
|
||||
*/
|
||||
public boolean remove(URI uri, HttpCookie cookie);
|
||||
|
||||
@ -123,7 +123,7 @@ public interface CookieStore {
|
||||
/**
|
||||
* Remove all cookies in this cookie store.
|
||||
*
|
||||
* @return <tt>true</tt> if this store changed as a result of the call
|
||||
* @return {@code true} if this store changed as a result of the call
|
||||
*/
|
||||
public boolean removeAll();
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -68,11 +68,11 @@ class DatagramPacket {
|
||||
int port;
|
||||
|
||||
/**
|
||||
* Constructs a <code>DatagramPacket</code> for receiving packets of
|
||||
* length <code>length</code>, specifying an offset into the buffer.
|
||||
* Constructs a {@code DatagramPacket} for receiving packets of
|
||||
* length {@code length}, specifying an offset into the buffer.
|
||||
* <p>
|
||||
* The <code>length</code> argument must be less than or equal to
|
||||
* <code>buf.length</code>.
|
||||
* The {@code length} argument must be less than or equal to
|
||||
* {@code buf.length}.
|
||||
*
|
||||
* @param buf buffer for holding the incoming datagram.
|
||||
* @param offset the offset for the buffer
|
||||
@ -87,11 +87,11 @@ class DatagramPacket {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>DatagramPacket</code> for receiving packets of
|
||||
* length <code>length</code>.
|
||||
* Constructs a {@code DatagramPacket} for receiving packets of
|
||||
* length {@code length}.
|
||||
* <p>
|
||||
* The <code>length</code> argument must be less than or equal to
|
||||
* <code>buf.length</code>.
|
||||
* The {@code length} argument must be less than or equal to
|
||||
* {@code buf.length}.
|
||||
*
|
||||
* @param buf buffer for holding the incoming datagram.
|
||||
* @param length the number of bytes to read.
|
||||
@ -102,10 +102,10 @@ class DatagramPacket {
|
||||
|
||||
/**
|
||||
* Constructs a datagram packet for sending packets of length
|
||||
* <code>length</code> with offset <code>ioffset</code>to the
|
||||
* {@code length} with offset {@code ioffset}to the
|
||||
* specified port number on the specified host. The
|
||||
* <code>length</code> argument must be less than or equal to
|
||||
* <code>buf.length</code>.
|
||||
* {@code length} argument must be less than or equal to
|
||||
* {@code buf.length}.
|
||||
*
|
||||
* @param buf the packet data.
|
||||
* @param offset the packet data offset.
|
||||
@ -125,10 +125,10 @@ class DatagramPacket {
|
||||
|
||||
/**
|
||||
* Constructs a datagram packet for sending packets of length
|
||||
* <code>length</code> with offset <code>ioffset</code>to the
|
||||
* {@code length} with offset {@code ioffset}to the
|
||||
* specified port number on the specified host. The
|
||||
* <code>length</code> argument must be less than or equal to
|
||||
* <code>buf.length</code>.
|
||||
* {@code length} argument must be less than or equal to
|
||||
* {@code buf.length}.
|
||||
*
|
||||
* @param buf the packet data.
|
||||
* @param offset the packet data offset.
|
||||
@ -147,9 +147,9 @@ class DatagramPacket {
|
||||
|
||||
/**
|
||||
* Constructs a datagram packet for sending packets of length
|
||||
* <code>length</code> to the specified port number on the specified
|
||||
* host. The <code>length</code> argument must be less than or equal
|
||||
* to <code>buf.length</code>.
|
||||
* {@code length} to the specified port number on the specified
|
||||
* host. The {@code length} argument must be less than or equal
|
||||
* to {@code buf.length}.
|
||||
*
|
||||
* @param buf the packet data.
|
||||
* @param length the packet length.
|
||||
@ -164,9 +164,9 @@ class DatagramPacket {
|
||||
|
||||
/**
|
||||
* Constructs a datagram packet for sending packets of length
|
||||
* <code>length</code> to the specified port number on the specified
|
||||
* host. The <code>length</code> argument must be less than or equal
|
||||
* to <code>buf.length</code>.
|
||||
* {@code length} to the specified port number on the specified
|
||||
* host. The {@code length} argument must be less than or equal
|
||||
* to {@code buf.length}.
|
||||
*
|
||||
* @param buf the packet data.
|
||||
* @param length the packet length.
|
||||
@ -207,8 +207,8 @@ class DatagramPacket {
|
||||
|
||||
/**
|
||||
* Returns the data buffer. The data received or the data to be sent
|
||||
* starts from the <code>offset</code> in the buffer,
|
||||
* and runs for <code>length</code> long.
|
||||
* starts from the {@code offset} in the buffer,
|
||||
* and runs for {@code length} long.
|
||||
*
|
||||
* @return the buffer used to receive or send data
|
||||
* @see #setData(byte[], int, int)
|
||||
@ -277,7 +277,7 @@ class DatagramPacket {
|
||||
/**
|
||||
* Sets the IP address of the machine to which this datagram
|
||||
* is being sent.
|
||||
* @param iaddr the <code>InetAddress</code>
|
||||
* @param iaddr the {@code InetAddress}
|
||||
* @since JDK1.1
|
||||
* @see #getAddress()
|
||||
*/
|
||||
@ -303,7 +303,7 @@ class DatagramPacket {
|
||||
* Sets the SocketAddress (usually IP address + port number) of the remote
|
||||
* host to which this datagram is being sent.
|
||||
*
|
||||
* @param address the <code>SocketAddress</code>
|
||||
* @param address the {@code SocketAddress}
|
||||
* @throws IllegalArgumentException if address is null or is a
|
||||
* SocketAddress subclass not supported by this socket
|
||||
*
|
||||
@ -324,7 +324,7 @@ class DatagramPacket {
|
||||
* Gets the SocketAddress (usually IP address + port number) of the remote
|
||||
* host that this packet is being sent to or is coming from.
|
||||
*
|
||||
* @return the <code>SocketAddress</code>
|
||||
* @return the {@code SocketAddress}
|
||||
* @since 1.4
|
||||
* @see #setSocketAddress
|
||||
*/
|
||||
@ -335,7 +335,7 @@ class DatagramPacket {
|
||||
/**
|
||||
* Set the data buffer for this packet. With the offset of
|
||||
* this DatagramPacket set to 0, and the length set to
|
||||
* the length of <code>buf</code>.
|
||||
* the length of {@code buf}.
|
||||
*
|
||||
* @param buf the buffer to set for this packet.
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -47,14 +47,14 @@ import java.security.PrivilegedExceptionAction;
|
||||
* a DatagramSocket is bound to a more specific address.
|
||||
* <p>
|
||||
* Example:
|
||||
* <code>
|
||||
* {@code
|
||||
* DatagramSocket s = new DatagramSocket(null);
|
||||
* s.bind(new InetSocketAddress(8888));
|
||||
* </code>
|
||||
* }
|
||||
* Which is equivalent to:
|
||||
* <code>
|
||||
* {@code
|
||||
* DatagramSocket s = new DatagramSocket(8888);
|
||||
* </code>
|
||||
* }
|
||||
* Both cases will create a DatagramSocket able to receive broadcasts on
|
||||
* UDP port 8888.
|
||||
*
|
||||
@ -161,14 +161,14 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* an IP address chosen by the kernel.
|
||||
*
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* its {@code checkListen} method is first called
|
||||
* with 0 as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @exception SocketException if the socket could not be opened,
|
||||
* or the socket could not bind to the specified local port.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkListen
|
||||
*/
|
||||
@ -195,21 +195,21 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* Creates a datagram socket, bound to the specified local
|
||||
* socket address.
|
||||
* <p>
|
||||
* If, if the address is <code>null</code>, creates an unbound socket.
|
||||
* If, if the address is {@code null}, creates an unbound socket.
|
||||
* <p>
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* its {@code checkListen} method is first called
|
||||
* with the port from the socket address
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @param bindaddr local socket address to bind, or <code>null</code>
|
||||
* @param bindaddr local socket address to bind, or {@code null}
|
||||
* for an unbound socket.
|
||||
*
|
||||
* @exception SocketException if the socket could not be opened,
|
||||
* or the socket could not bind to the specified local port.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkListen
|
||||
* @since 1.4
|
||||
@ -234,8 +234,8 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* an IP address chosen by the kernel.
|
||||
*
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* with the <code>port</code> argument
|
||||
* its {@code checkListen} method is first called
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
@ -243,7 +243,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* @exception SocketException if the socket could not be opened,
|
||||
* or the socket could not bind to the specified local port.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkListen
|
||||
*/
|
||||
@ -259,8 +259,8 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* an IP address chosen by the kernel.
|
||||
*
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* with the <code>port</code> argument
|
||||
* its {@code checkListen} method is first called
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
@ -270,7 +270,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* @exception SocketException if the socket could not be opened,
|
||||
* or the socket could not bind to the specified local port.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkListen
|
||||
* @since JDK1.1
|
||||
@ -319,10 +319,10 @@ class DatagramSocket implements java.io.Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>DatagramSocketImpl</code> attached to this socket,
|
||||
* Get the {@code DatagramSocketImpl} attached to this socket,
|
||||
* creating it if necessary.
|
||||
*
|
||||
* @return the <code>DatagramSocketImpl</code> attached to that
|
||||
* @return the {@code DatagramSocketImpl} attached to that
|
||||
* DatagramSocket
|
||||
* @throws SocketException if creation fails.
|
||||
* @since 1.4
|
||||
@ -336,14 +336,14 @@ class DatagramSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Binds this DatagramSocket to a specific address and port.
|
||||
* <p>
|
||||
* If the address is <code>null</code>, then the system will pick up
|
||||
* If the address is {@code null}, then the system will pick up
|
||||
* an ephemeral port and a valid local address to bind the socket.
|
||||
*<p>
|
||||
* @param addr The address and port to bind to.
|
||||
* @throws SocketException if any error happens during the bind, or if the
|
||||
* socket is already bound.
|
||||
* @throws SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
* @throws IllegalArgumentException if addr is a SocketAddress subclass
|
||||
* not supported by this socket.
|
||||
* @since 1.4
|
||||
@ -496,7 +496,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* Returns the binding state of the socket.
|
||||
* <p>
|
||||
* If the socket was bound prior to being {@link #close closed},
|
||||
* then this method will continue to return <code>true</code>
|
||||
* then this method will continue to return {@code true}
|
||||
* after the socket is closed.
|
||||
*
|
||||
* @return true if the socket successfully bound to an address
|
||||
@ -510,7 +510,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* Returns the connection state of the socket.
|
||||
* <p>
|
||||
* If the socket was connected prior to being {@link #close closed},
|
||||
* then this method will continue to return <code>true</code>
|
||||
* then this method will continue to return {@code true}
|
||||
* after the socket is closed.
|
||||
*
|
||||
* @return true if the socket successfully connected to a server
|
||||
@ -522,7 +522,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Returns the address to which this socket is connected. Returns
|
||||
* <code>null</code> if the socket is not connected.
|
||||
* {@code null} if the socket is not connected.
|
||||
* <p>
|
||||
* If the socket was connected prior to being {@link #close closed},
|
||||
* then this method will continue to return the connected address
|
||||
@ -536,7 +536,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Returns the port number to which this socket is connected.
|
||||
* Returns <code>-1</code> if the socket is not connected.
|
||||
* Returns {@code -1} if the socket is not connected.
|
||||
* <p>
|
||||
* If the socket was connected prior to being {@link #close closed},
|
||||
* then this method will continue to return the connected port number
|
||||
@ -550,14 +550,14 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Returns the address of the endpoint this socket is connected to, or
|
||||
* <code>null</code> if it is unconnected.
|
||||
* {@code null} if it is unconnected.
|
||||
* <p>
|
||||
* If the socket was connected prior to being {@link #close closed},
|
||||
* then this method will continue to return the connected address
|
||||
* after the socket is closed.
|
||||
*
|
||||
* @return a <code>SocketAddress</code> representing the remote
|
||||
* endpoint of this socket, or <code>null</code> if it is
|
||||
* @return a {@code SocketAddress} representing the remote
|
||||
* endpoint of this socket, or {@code null} if it is
|
||||
* not connected yet.
|
||||
* @see #getInetAddress()
|
||||
* @see #getPort()
|
||||
@ -573,8 +573,8 @@ class DatagramSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Returns the address of the endpoint this socket is bound to.
|
||||
*
|
||||
* @return a <code>SocketAddress</code> representing the local endpoint of this
|
||||
* socket, or <code>null</code> if it is closed or not bound yet.
|
||||
* @return a {@code SocketAddress} representing the local endpoint of this
|
||||
* socket, or {@code null} if it is closed or not bound yet.
|
||||
* @see #getLocalAddress()
|
||||
* @see #getLocalPort()
|
||||
* @see #bind(SocketAddress)
|
||||
@ -591,28 +591,28 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Sends a datagram packet from this socket. The
|
||||
* <code>DatagramPacket</code> includes information indicating the
|
||||
* {@code DatagramPacket} includes information indicating the
|
||||
* data to be sent, its length, the IP address of the remote host,
|
||||
* and the port number on the remote host.
|
||||
*
|
||||
* <p>If there is a security manager, and the socket is not currently
|
||||
* connected to a remote address, this method first performs some
|
||||
* security checks. First, if <code>p.getAddress().isMulticastAddress()</code>
|
||||
* security checks. First, if {@code p.getAddress().isMulticastAddress()}
|
||||
* is true, this method calls the
|
||||
* security manager's <code>checkMulticast</code> method
|
||||
* with <code>p.getAddress()</code> as its argument.
|
||||
* security manager's {@code checkMulticast} method
|
||||
* with {@code p.getAddress()} as its argument.
|
||||
* If the evaluation of that expression is false,
|
||||
* this method instead calls the security manager's
|
||||
* <code>checkConnect</code> method with arguments
|
||||
* <code>p.getAddress().getHostAddress()</code> and
|
||||
* <code>p.getPort()</code>. Each call to a security manager method
|
||||
* {@code checkConnect} method with arguments
|
||||
* {@code p.getAddress().getHostAddress()} and
|
||||
* {@code p.getPort()}. Each call to a security manager method
|
||||
* could result in a SecurityException if the operation is not allowed.
|
||||
*
|
||||
* @param p the <code>DatagramPacket</code> to be sent.
|
||||
* @param p the {@code DatagramPacket} to be sent.
|
||||
*
|
||||
* @exception IOException if an I/O error occurs.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> or <code>checkConnect</code>
|
||||
* {@code checkMulticast} or {@code checkConnect}
|
||||
* method doesn't allow the send.
|
||||
* @exception PortUnreachableException may be thrown if the socket is connected
|
||||
* to a currently unreachable destination. Note, there is no
|
||||
@ -674,20 +674,20 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Receives a datagram packet from this socket. When this method
|
||||
* returns, the <code>DatagramPacket</code>'s buffer is filled with
|
||||
* returns, the {@code DatagramPacket}'s buffer is filled with
|
||||
* the data received. The datagram packet also contains the sender's
|
||||
* IP address, and the port number on the sender's machine.
|
||||
* <p>
|
||||
* This method blocks until a datagram is received. The
|
||||
* <code>length</code> field of the datagram packet object contains
|
||||
* {@code length} field of the datagram packet object contains
|
||||
* the length of the received message. If the message is longer than
|
||||
* the packet's length, the message is truncated.
|
||||
* <p>
|
||||
* If there is a security manager, a packet cannot be received if the
|
||||
* security manager's <code>checkAccept</code> method
|
||||
* security manager's {@code checkAccept} method
|
||||
* does not allow it.
|
||||
*
|
||||
* @param p the <code>DatagramPacket</code> into which to place
|
||||
* @param p the {@code DatagramPacket} into which to place
|
||||
* the incoming data.
|
||||
* @exception IOException if an I/O error occurs.
|
||||
* @exception SocketTimeoutException if setSoTimeout was previously called
|
||||
@ -786,17 +786,17 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* Gets the local address to which the socket is bound.
|
||||
*
|
||||
* <p>If there is a security manager, its
|
||||
* <code>checkConnect</code> method is first called
|
||||
* with the host address and <code>-1</code>
|
||||
* {@code checkConnect} method is first called
|
||||
* with the host address and {@code -1}
|
||||
* as its arguments to see if the operation is allowed.
|
||||
*
|
||||
* @see SecurityManager#checkConnect
|
||||
* @return the local address to which the socket is bound,
|
||||
* <code>null</code> if the socket is closed, or
|
||||
* an <code>InetAddress</code> representing
|
||||
* {@code null} if the socket is closed, or
|
||||
* an {@code InetAddress} representing
|
||||
* {@link InetAddress#isAnyLocalAddress wildcard}
|
||||
* address if either the socket is not bound, or
|
||||
* the security manager <code>checkConnect</code>
|
||||
* the security manager {@code checkConnect}
|
||||
* method does not allow the operation
|
||||
* @since 1.1
|
||||
*/
|
||||
@ -824,8 +824,8 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* is bound.
|
||||
*
|
||||
* @return the port number on the local host to which this socket is bound,
|
||||
<code>-1</code> if the socket is closed, or
|
||||
<code>0</code> if it is not bound yet.
|
||||
{@code -1} if the socket is closed, or
|
||||
{@code 0} if it is not bound yet.
|
||||
*/
|
||||
public int getLocalPort() {
|
||||
if (isClosed())
|
||||
@ -883,7 +883,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Sets the SO_SNDBUF option to the specified value for this
|
||||
* <tt>DatagramSocket</tt>. The SO_SNDBUF option is used by the
|
||||
* {@code DatagramSocket}. The SO_SNDBUF option is used by the
|
||||
* network implementation as a hint to size the underlying
|
||||
* network I/O buffers. The SO_SNDBUF setting may also be used
|
||||
* by the network implementation to determine the maximum size
|
||||
@ -897,7 +897,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* is high.
|
||||
* <p>
|
||||
* Note: If {@link #send(DatagramPacket)} is used to send a
|
||||
* <code>DatagramPacket</code> that is larger than the setting
|
||||
* {@code DatagramPacket} that is larger than the setting
|
||||
* of SO_SNDBUF then it is implementation specific if the
|
||||
* packet is sent or discarded.
|
||||
*
|
||||
@ -921,10 +921,10 @@ class DatagramSocket implements java.io.Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get value of the SO_SNDBUF option for this <tt>DatagramSocket</tt>, that is the
|
||||
* buffer size used by the platform for output on this <tt>DatagramSocket</tt>.
|
||||
* Get value of the SO_SNDBUF option for this {@code DatagramSocket}, that is the
|
||||
* buffer size used by the platform for output on this {@code DatagramSocket}.
|
||||
*
|
||||
* @return the value of the SO_SNDBUF option for this <tt>DatagramSocket</tt>
|
||||
* @return the value of the SO_SNDBUF option for this {@code DatagramSocket}
|
||||
* @exception SocketException if there is an error in
|
||||
* the underlying protocol, such as an UDP error.
|
||||
* @see #setSendBufferSize
|
||||
@ -942,7 +942,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Sets the SO_RCVBUF option to the specified value for this
|
||||
* <tt>DatagramSocket</tt>. The SO_RCVBUF option is used by the
|
||||
* {@code DatagramSocket}. The SO_RCVBUF option is used by the
|
||||
* the network implementation as a hint to size the underlying
|
||||
* network I/O buffers. The SO_RCVBUF setting may also be used
|
||||
* by the network implementation to determine the maximum size
|
||||
@ -979,10 +979,10 @@ class DatagramSocket implements java.io.Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get value of the SO_RCVBUF option for this <tt>DatagramSocket</tt>, that is the
|
||||
* buffer size used by the platform for input on this <tt>DatagramSocket</tt>.
|
||||
* Get value of the SO_RCVBUF option for this {@code DatagramSocket}, that is the
|
||||
* buffer size used by the platform for input on this {@code DatagramSocket}.
|
||||
*
|
||||
* @return the value of the SO_RCVBUF option for this <tt>DatagramSocket</tt>
|
||||
* @return the value of the SO_RCVBUF option for this {@code DatagramSocket}
|
||||
* @exception SocketException if there is an error in the underlying protocol, such as an UDP error.
|
||||
* @see #setReceiveBufferSize(int)
|
||||
*/
|
||||
@ -1005,26 +1005,26 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* socket to the same socket address. This is typically for the
|
||||
* purpose of receiving multicast packets
|
||||
* (See {@link java.net.MulticastSocket}). The
|
||||
* <tt>SO_REUSEADDR</tt> socket option allows multiple
|
||||
* {@code SO_REUSEADDR} socket option allows multiple
|
||||
* sockets to be bound to the same socket address if the
|
||||
* <tt>SO_REUSEADDR</tt> socket option is enabled prior
|
||||
* {@code SO_REUSEADDR} socket option is enabled prior
|
||||
* to binding the socket using {@link #bind(SocketAddress)}.
|
||||
* <p>
|
||||
* Note: This functionality is not supported by all existing platforms,
|
||||
* so it is implementation specific whether this option will be ignored
|
||||
* or not. However, if it is not supported then
|
||||
* {@link #getReuseAddress()} will always return <code>false</code>.
|
||||
* {@link #getReuseAddress()} will always return {@code false}.
|
||||
* <p>
|
||||
* When a <tt>DatagramSocket</tt> is created the initial setting
|
||||
* of <tt>SO_REUSEADDR</tt> is disabled.
|
||||
* When a {@code DatagramSocket} is created the initial setting
|
||||
* of {@code SO_REUSEADDR} is disabled.
|
||||
* <p>
|
||||
* The behaviour when <tt>SO_REUSEADDR</tt> is enabled or
|
||||
* The behaviour when {@code SO_REUSEADDR} is enabled or
|
||||
* disabled after a socket is bound (See {@link #isBound()})
|
||||
* is not defined.
|
||||
*
|
||||
* @param on whether to enable or disable the
|
||||
* @exception SocketException if an error occurs enabling or
|
||||
* disabling the <tt>SO_RESUEADDR</tt> socket option,
|
||||
* disabling the {@code SO_RESUEADDR} socket option,
|
||||
* or the socket is closed.
|
||||
* @since 1.4
|
||||
* @see #getReuseAddress()
|
||||
@ -1045,7 +1045,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if SO_REUSEADDR is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not SO_REUSEADDR is enabled.
|
||||
* @return a {@code boolean} indicating whether or not SO_REUSEADDR is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as an UDP error.
|
||||
* @since 1.4
|
||||
@ -1083,7 +1083,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Tests if SO_BROADCAST is enabled.
|
||||
* @return a <code>boolean</code> indicating whether or not SO_BROADCAST is enabled.
|
||||
* @return a {@code boolean} indicating whether or not SO_BROADCAST is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as an UDP error.
|
||||
* @since 1.4
|
||||
@ -1105,7 +1105,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* 255} or an IllegalArgumentException will be thrown.
|
||||
* <p>Notes:
|
||||
* <p>For Internet Protocol v4 the value consists of an
|
||||
* <code>integer</code>, the least significant 8 bits of which
|
||||
* {@code integer}, the least significant 8 bits of which
|
||||
* represent the value of the TOS octet in IP packets sent by
|
||||
* the socket.
|
||||
* RFC 1349 defines the TOS values as follows:
|
||||
@ -1123,10 +1123,10 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* SocketException indicating that the operation is not
|
||||
* permitted.
|
||||
* <p>
|
||||
* for Internet Protocol v6 <code>tc</code> is the value that
|
||||
* for Internet Protocol v6 {@code tc} is the value that
|
||||
* would be placed into the sin6_flowinfo field of the IP header.
|
||||
*
|
||||
* @param tc an <code>int</code> value for the bitset.
|
||||
* @param tc an {@code int} value for the bitset.
|
||||
* @throws SocketException if there is an error setting the
|
||||
* traffic class or type-of-service
|
||||
* @since 1.4
|
||||
@ -1205,7 +1205,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* DatagramChannel.open} method.
|
||||
*
|
||||
* @return the datagram channel associated with this datagram socket,
|
||||
* or <tt>null</tt> if this socket was not created for a channel
|
||||
* or {@code null} if this socket was not created for a channel
|
||||
*
|
||||
* @since 1.4
|
||||
* @spec JSR-51
|
||||
@ -1224,14 +1224,14 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* application. The factory can be specified only once.
|
||||
* <p>
|
||||
* When an application creates a new datagram socket, the socket
|
||||
* implementation factory's <code>createDatagramSocketImpl</code> method is
|
||||
* implementation factory's {@code createDatagramSocketImpl} method is
|
||||
* called to create the actual datagram socket implementation.
|
||||
* <p>
|
||||
* Passing <code>null</code> to the method is a no-op unless the factory
|
||||
* Passing {@code null} to the method is a no-op unless the factory
|
||||
* was already set.
|
||||
*
|
||||
* <p>If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
@ -1240,7 +1240,7 @@ class DatagramSocket implements java.io.Closeable {
|
||||
* datagram socket factory.
|
||||
* @exception SocketException if the factory is already defined.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow the
|
||||
* {@code checkSetFactory} method doesn't allow the
|
||||
operation.
|
||||
* @see
|
||||
java.net.DatagramSocketImplFactory#createDatagramSocketImpl()
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -101,7 +101,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
protected void disconnect() {}
|
||||
|
||||
/**
|
||||
* Peek at the packet to see who it is from. Updates the specified <code>InetAddress</code>
|
||||
* Peek at the packet to see who it is from. Updates the specified {@code InetAddress}
|
||||
* to the address which the packet came from.
|
||||
* @param i an InetAddress object
|
||||
* @return the port number which the packet came from.
|
||||
@ -114,7 +114,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
|
||||
/**
|
||||
* Peek at the packet to see who it is from. The data is copied into the specified
|
||||
* <code>DatagramPacket</code>. The data is returned,
|
||||
* {@code DatagramPacket}. The data is returned,
|
||||
* but not consumed, so that a subsequent peekData/receive operation
|
||||
* will see the same data.
|
||||
* @param p the Packet Received.
|
||||
@ -163,7 +163,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
|
||||
/**
|
||||
* Set the TTL (time-to-live) option.
|
||||
* @param ttl an <tt>int</tt> specifying the time-to-live value
|
||||
* @param ttl an {@code int} specifying the time-to-live value
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* while setting the time-to-live option.
|
||||
* @see #getTimeToLive()
|
||||
@ -174,7 +174,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
* Retrieve the TTL (time-to-live) option.
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* while retrieving the time-to-live option
|
||||
* @return an <tt>int</tt> representing the time-to-live value
|
||||
* @return an {@code int} representing the time-to-live value
|
||||
* @see #setTimeToLive(int)
|
||||
*/
|
||||
protected abstract int getTimeToLive() throws IOException;
|
||||
@ -227,7 +227,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
|
||||
/**
|
||||
* Gets the local port.
|
||||
* @return an <tt>int</tt> representing the local port value
|
||||
* @return an {@code int} representing the local port value
|
||||
*/
|
||||
protected int getLocalPort() {
|
||||
return localPort;
|
||||
@ -235,7 +235,7 @@ public abstract class DatagramSocketImpl implements SocketOptions {
|
||||
|
||||
/**
|
||||
* Gets the datagram socket file descriptor.
|
||||
* @return a <tt>FileDescriptor</tt> object representing the datagram socket
|
||||
* @return a {@code FileDescriptor} object representing the datagram socket
|
||||
* file descriptor
|
||||
*/
|
||||
protected FileDescriptor getFileDescriptor() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1999, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,7 +27,7 @@ package java.net;
|
||||
|
||||
/**
|
||||
* This interface defines a factory for datagram socket implementations. It
|
||||
* is used by the classes <code>DatagramSocket</code> to create actual socket
|
||||
* is used by the classes {@code DatagramSocket} to create actual socket
|
||||
* implementations.
|
||||
*
|
||||
* @author Yingxian Wang
|
||||
@ -37,9 +37,9 @@ package java.net;
|
||||
public
|
||||
interface DatagramSocketImplFactory {
|
||||
/**
|
||||
* Creates a new <code>DatagramSocketImpl</code> instance.
|
||||
* Creates a new {@code DatagramSocketImpl} instance.
|
||||
*
|
||||
* @return a new instance of <code>DatagramSocketImpl</code>.
|
||||
* @return a new instance of {@code DatagramSocketImpl}.
|
||||
* @see java.net.DatagramSocketImpl
|
||||
*/
|
||||
DatagramSocketImpl createDatagramSocketImpl();
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 1999, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -37,7 +37,7 @@ public interface FileNameMap {
|
||||
/**
|
||||
* Gets the MIME type for the specified file name.
|
||||
* @param fileName the specified file name
|
||||
* @return a <code>String</code> indicating the MIME
|
||||
* @return a {@code String} indicating the MIME
|
||||
* type for the specified file name.
|
||||
*/
|
||||
public String getContentTypeFor(String fileName);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -470,7 +470,7 @@ public final class HttpCookie implements Cloneable {
|
||||
* protocol.
|
||||
*
|
||||
* @return {@code false} if the cookie can be sent over any standard
|
||||
* protocol; otherwise, <code>true</code>
|
||||
* protocol; otherwise, {@code true}
|
||||
*
|
||||
* @see #setSecure
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2004, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2004, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,7 +43,7 @@ class HttpRetryException extends IOException {
|
||||
private String location;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>HttpRetryException</code> from the
|
||||
* Constructs a new {@code HttpRetryException} from the
|
||||
* specified response code and exception detail message
|
||||
*
|
||||
* @param detail the detail message.
|
||||
@ -55,7 +55,7 @@ class HttpRetryException extends IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new <code>HttpRetryException</code> with detail message
|
||||
* Constructs a new {@code HttpRetryException} with detail message
|
||||
* responseCode and the contents of the Location response header field.
|
||||
*
|
||||
* @param detail the detail message.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -76,14 +76,14 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
|
||||
/**
|
||||
* The chunk-length when using chunked encoding streaming mode for output.
|
||||
* A value of <code>-1</code> means chunked encoding is disabled for output.
|
||||
* A value of {@code -1} means chunked encoding is disabled for output.
|
||||
* @since 1.5
|
||||
*/
|
||||
protected int chunkLength = -1;
|
||||
|
||||
/**
|
||||
* The fixed content-length when using fixed-length streaming mode.
|
||||
* A value of <code>-1</code> means fixed-length streaming mode is disabled
|
||||
* A value of {@code -1} means fixed-length streaming mode is disabled
|
||||
* for output.
|
||||
*
|
||||
* <P> <B>NOTE:</B> {@link #fixedContentLengthLong} is recommended instead
|
||||
@ -103,15 +103,15 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
protected long fixedContentLengthLong = -1;
|
||||
|
||||
/**
|
||||
* Returns the key for the <code>n</code><sup>th</sup> header field.
|
||||
* Some implementations may treat the <code>0</code><sup>th</sup>
|
||||
* Returns the key for the {@code n}<sup>th</sup> header field.
|
||||
* Some implementations may treat the {@code 0}<sup>th</sup>
|
||||
* header field as special, i.e. as the status line returned by the HTTP
|
||||
* server. In this case, {@link #getHeaderField(int) getHeaderField(0)} returns the status
|
||||
* line, but <code>getHeaderFieldKey(0)</code> returns null.
|
||||
* line, but {@code getHeaderFieldKey(0)} returns null.
|
||||
*
|
||||
* @param n an index, where {@code n >=0}.
|
||||
* @return the key for the <code>n</code><sup>th</sup> header field,
|
||||
* or <code>null</code> if the key does not exist.
|
||||
* @return the key for the {@code n}<sup>th</sup> header field,
|
||||
* or {@code null} if the key does not exist.
|
||||
*/
|
||||
public String getHeaderFieldKey (int n) {
|
||||
return null;
|
||||
@ -251,8 +251,8 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value for the <code>n</code><sup>th</sup> header field.
|
||||
* Some implementations may treat the <code>0</code><sup>th</sup>
|
||||
* Returns the value for the {@code n}<sup>th</sup> header field.
|
||||
* Some implementations may treat the {@code 0}<sup>th</sup>
|
||||
* header field as special, i.e. as the status line returned by the HTTP
|
||||
* server.
|
||||
* <p>
|
||||
@ -261,8 +261,8 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
* the headers in the message.
|
||||
*
|
||||
* @param n an index, where {@code n>=0}.
|
||||
* @return the value of the <code>n</code><sup>th</sup> header field,
|
||||
* or <code>null</code> if the value does not exist.
|
||||
* @return the value of the {@code n}<sup>th</sup> header field,
|
||||
* or {@code null} if the value does not exist.
|
||||
* @see java.net.HttpURLConnection#getHeaderFieldKey(int)
|
||||
*/
|
||||
public String getHeaderField(int n) {
|
||||
@ -270,7 +270,7 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* An <code>int</code> representing the three digit HTTP Status-Code.
|
||||
* An {@code int} representing the three digit HTTP Status-Code.
|
||||
* <ul>
|
||||
* <li> 1xx: Informational
|
||||
* <li> 2xx: Success
|
||||
@ -292,12 +292,12 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
private static boolean followRedirects = true;
|
||||
|
||||
/**
|
||||
* If <code>true</code>, the protocol will automatically follow redirects.
|
||||
* If <code>false</code>, the protocol will not automatically follow
|
||||
* If {@code true}, the protocol will automatically follow redirects.
|
||||
* If {@code false}, the protocol will not automatically follow
|
||||
* redirects.
|
||||
* <p>
|
||||
* This field is set by the <code>setInstanceFollowRedirects</code>
|
||||
* method. Its value is returned by the <code>getInstanceFollowRedirects</code>
|
||||
* This field is set by the {@code setInstanceFollowRedirects}
|
||||
* method. Its value is returned by the {@code getInstanceFollowRedirects}
|
||||
* method.
|
||||
* <p>
|
||||
* Its default value is based on the value of the static followRedirects
|
||||
@ -328,14 +328,14 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
* cannot change this variable.
|
||||
* <p>
|
||||
* If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @param set a <code>boolean</code> indicating whether or not
|
||||
* @param set a {@code boolean} indicating whether or not
|
||||
* to follow HTTP redirects.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't
|
||||
* {@code checkSetFactory} method doesn't
|
||||
* allow the operation.
|
||||
* @see SecurityManager#checkSetFactory
|
||||
* @see #getFollowRedirects()
|
||||
@ -350,12 +350,12 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a <code>boolean</code> indicating
|
||||
* Returns a {@code boolean} indicating
|
||||
* whether or not HTTP redirects (3xx) should
|
||||
* be automatically followed.
|
||||
*
|
||||
* @return <code>true</code> if HTTP redirects should
|
||||
* be automatically followed, <tt>false</tt> if not.
|
||||
* @return {@code true} if HTTP redirects should
|
||||
* be automatically followed, {@code false} if not.
|
||||
* @see #setFollowRedirects(boolean)
|
||||
*/
|
||||
public static boolean getFollowRedirects() {
|
||||
@ -364,13 +364,13 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
|
||||
/**
|
||||
* Sets whether HTTP redirects (requests with response code 3xx) should
|
||||
* be automatically followed by this <code>HttpURLConnection</code>
|
||||
* be automatically followed by this {@code HttpURLConnection}
|
||||
* instance.
|
||||
* <p>
|
||||
* The default value comes from followRedirects, which defaults to
|
||||
* true.
|
||||
*
|
||||
* @param followRedirects a <code>boolean</code> indicating
|
||||
* @param followRedirects a {@code boolean} indicating
|
||||
* whether or not to follow HTTP redirects.
|
||||
*
|
||||
* @see java.net.HttpURLConnection#instanceFollowRedirects
|
||||
@ -382,11 +382,11 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this <code>HttpURLConnection</code>'s
|
||||
* <code>instanceFollowRedirects</code> field.
|
||||
* Returns the value of this {@code HttpURLConnection}'s
|
||||
* {@code instanceFollowRedirects} field.
|
||||
*
|
||||
* @return the value of this <code>HttpURLConnection</code>'s
|
||||
* <code>instanceFollowRedirects</code> field.
|
||||
* @return the value of this {@code HttpURLConnection}'s
|
||||
* {@code instanceFollowRedirects} field.
|
||||
* @see java.net.HttpURLConnection#instanceFollowRedirects
|
||||
* @see #setInstanceFollowRedirects(boolean)
|
||||
* @since 1.3
|
||||
@ -540,7 +540,7 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
* Returns null if none could be discerned from the responses
|
||||
* (the result was not valid HTTP).
|
||||
* @throws IOException if an error occurred connecting to the server.
|
||||
* @return the HTTP response message, or <code>null</code>
|
||||
* @return the HTTP response message, or {@code null}
|
||||
*/
|
||||
public String getResponseMessage() throws IOException {
|
||||
getResponseCode();
|
||||
@ -583,7 +583,7 @@ abstract public class HttpURLConnection extends URLConnection {
|
||||
* @exception IOException if an error occurs while computing
|
||||
* the permission.
|
||||
*
|
||||
* @return a <code>SocketPermission</code> object representing the
|
||||
* @return a {@code SocketPermission} object representing the
|
||||
* permission necessary to connect to the destination
|
||||
* host and port.
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -104,7 +104,7 @@ public final class IDN {
|
||||
* @param input the string to be processed
|
||||
* @param flag process flag; can be 0 or any logical OR of possible flags
|
||||
*
|
||||
* @return the translated <tt>String</tt>
|
||||
* @return the translated {@code String}
|
||||
*
|
||||
* @throws IllegalArgumentException if the input string doesn't conform to RFC 3490 specification
|
||||
*/
|
||||
@ -130,13 +130,13 @@ public final class IDN {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking the
|
||||
* two-argument counterpart as follows:
|
||||
* <blockquote><tt>
|
||||
* <blockquote>
|
||||
* {@link #toASCII(String, int) toASCII}(input, 0);
|
||||
* </tt></blockquote>
|
||||
* </blockquote>
|
||||
*
|
||||
* @param input the string to be processed
|
||||
*
|
||||
* @return the translated <tt>String</tt>
|
||||
* @return the translated {@code String}
|
||||
*
|
||||
* @throws IllegalArgumentException if the input string doesn't conform to RFC 3490 specification
|
||||
*/
|
||||
@ -161,7 +161,7 @@ public final class IDN {
|
||||
* @param input the string to be processed
|
||||
* @param flag process flag; can be 0 or any logical OR of possible flags
|
||||
*
|
||||
* @return the translated <tt>String</tt>
|
||||
* @return the translated {@code String}
|
||||
*/
|
||||
public static String toUnicode(String input, int flag) {
|
||||
int p = 0, q = 0;
|
||||
@ -184,13 +184,13 @@ public final class IDN {
|
||||
*
|
||||
* <p> This convenience method works as if by invoking the
|
||||
* two-argument counterpart as follows:
|
||||
* <blockquote><tt>
|
||||
* <blockquote>
|
||||
* {@link #toUnicode(String, int) toUnicode}(input, 0);
|
||||
* </tt></blockquote>
|
||||
* </blockquote>
|
||||
*
|
||||
* @param input the string to be processed
|
||||
*
|
||||
* @return the translated <tt>String</tt>
|
||||
* @return the translated {@code String}
|
||||
*/
|
||||
public static String toUnicode(String input) {
|
||||
return toUnicode(input, 0);
|
||||
|
||||
@ -42,10 +42,10 @@ import java.io.ObjectStreamException;
|
||||
* takes one of the following forms:
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>d.d.d.d</tt></td></tr>
|
||||
* <tr><td><tt>d.d.d</tt></td></tr>
|
||||
* <tr><td><tt>d.d</tt></td></tr>
|
||||
* <tr><td><tt>d</tt></td></tr>
|
||||
* <tr><td>{@code d.d.d.d}</td></tr>
|
||||
* <tr><td>{@code d.d.d}</td></tr>
|
||||
* <tr><td>{@code d.d}</td></tr>
|
||||
* <tr><td>{@code d}</td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> When four parts are specified, each is interpreted as a byte of
|
||||
@ -153,7 +153,7 @@ class Inet4Address extends InetAddress {
|
||||
* Utility routine to check if the InetAddress is an
|
||||
* IP multicast address. IP multicast address is a Class D
|
||||
* address i.e first four bits of the address are 1110.
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* an IP multicast address
|
||||
* @since JDK1.1
|
||||
*/
|
||||
@ -163,7 +163,7 @@ class Inet4Address extends InetAddress {
|
||||
|
||||
/**
|
||||
* Utility routine to check if the InetAddress in a wildcard address.
|
||||
* @return a <code>boolean</code> indicating if the Inetaddress is
|
||||
* @return a {@code boolean} indicating if the Inetaddress is
|
||||
* a wildcard address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -174,7 +174,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is a loopback address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a loopback address; or false otherwise.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -187,7 +187,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is an link local address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a link local address; or false if address is not a link local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -204,7 +204,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is a site local address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a site local address; or false if address is not a site local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -224,7 +224,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has global scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of global scope, false if it is not
|
||||
* of global scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -240,7 +240,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has node scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of node-local scope, false if it is not
|
||||
* of node-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -253,7 +253,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has link scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of link-local scope, false if it is not
|
||||
* of link-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -269,7 +269,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has site scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of site-local scope, false if it is not
|
||||
* of site-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -284,7 +284,7 @@ class Inet4Address extends InetAddress {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has organization scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of organization-local scope,
|
||||
* false if it is not of organization-local scope
|
||||
* or it is not a multicast address
|
||||
@ -299,9 +299,9 @@ class Inet4Address extends InetAddress {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw IP address of this <code>InetAddress</code>
|
||||
* Returns the raw IP address of this {@code InetAddress}
|
||||
* object. The result is in network byte order: the highest order
|
||||
* byte of the address is in <code>getAddress()[0]</code>.
|
||||
* byte of the address is in {@code getAddress()[0]}.
|
||||
*
|
||||
* @return the raw IP address of this object.
|
||||
*/
|
||||
@ -337,18 +337,18 @@ class Inet4Address extends InetAddress {
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same IP address as
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same IP address as
|
||||
* this object.
|
||||
* <p>
|
||||
* Two instances of <code>InetAddress</code> represent the same IP
|
||||
* Two instances of {@code InetAddress} represent the same IP
|
||||
* address if the length of the byte arrays returned by
|
||||
* <code>getAddress</code> is the same for both, and each of the
|
||||
* {@code getAddress} is the same for both, and each of the
|
||||
* array components is the same for the byte arrays.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InetAddress#getAddress()
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
|
||||
@ -47,7 +47,7 @@ import java.util.Enumeration;
|
||||
* address. This is the full form. For example,
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>1080:0:0:0:8:800:200C:417A</tt><td></tr>
|
||||
* <tr><td>{@code 1080:0:0:0:8:800:200C:417A}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> Note that it is not necessary to write the leading zeros in
|
||||
@ -64,7 +64,7 @@ import java.util.Enumeration;
|
||||
* zeros in an address. For example,
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>1080::8:800:200C:417A</tt><td></tr>
|
||||
* <tr><td>{@code 1080::8:800:200C:417A}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <li><p> An alternative form that is sometimes more convenient
|
||||
@ -75,8 +75,8 @@ import java.util.Enumeration;
|
||||
* standard IPv4 representation address, for example,
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>::FFFF:129.144.52.38</tt><td></tr>
|
||||
* <tr><td><tt>::129.144.52.38</tt><td></tr>
|
||||
* <tr><td>{@code ::FFFF:129.144.52.38}<td></tr>
|
||||
* <tr><td>{@code ::129.144.52.38}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> where "::FFFF:d.d.d.d" and "::d.d.d.d" are, respectively, the
|
||||
@ -85,23 +85,23 @@ import java.util.Enumeration;
|
||||
* in the "d.d.d.d" form. The following forms are invalid:
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>::FFFF:d.d.d</tt><td></tr>
|
||||
* <tr><td><tt>::FFFF:d.d</tt><td></tr>
|
||||
* <tr><td><tt>::d.d.d</tt><td></tr>
|
||||
* <tr><td><tt>::d.d</tt><td></tr>
|
||||
* <tr><td>{@code ::FFFF:d.d.d}<td></tr>
|
||||
* <tr><td>{@code ::FFFF:d.d}<td></tr>
|
||||
* <tr><td>{@code ::d.d.d}<td></tr>
|
||||
* <tr><td>{@code ::d.d}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> The following form:
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>::FFFF:d</tt><td></tr>
|
||||
* <tr><td>{@code ::FFFF:d}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> is valid, however it is an unconventional representation of
|
||||
* the IPv4-compatible IPv6 address,
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>::255.255.0.d</tt><td></tr>
|
||||
* <tr><td>{@code ::255.255.0.d}<td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> while "::d" corresponds to the general IPv6 address
|
||||
@ -258,7 +258,7 @@ class Inet6Address extends InetAddress {
|
||||
* Create an Inet6Address in the exact manner of {@link
|
||||
* InetAddress#getByAddress(String,byte[])} except that the IPv6 scope_id is
|
||||
* set to the value corresponding to the given interface for the address
|
||||
* type specified in <code>addr</code>. The call will fail with an
|
||||
* type specified in {@code addr}. The call will fail with an
|
||||
* UnknownHostException if the given interface does not have a numeric
|
||||
* scope_id assigned for the given address type (eg. link-local or site-local).
|
||||
* See <a href="Inet6Address.html#scoped">here</a> for a description of IPv6
|
||||
|
||||
@ -296,7 +296,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is an
|
||||
* IP multicast address.
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* an IP multicast address
|
||||
* @since JDK1.1
|
||||
*/
|
||||
@ -306,7 +306,7 @@ class InetAddress implements java.io.Serializable {
|
||||
|
||||
/**
|
||||
* Utility routine to check if the InetAddress in a wildcard address.
|
||||
* @return a <code>boolean</code> indicating if the Inetaddress is
|
||||
* @return a {@code boolean} indicating if the Inetaddress is
|
||||
* a wildcard address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -317,7 +317,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is a loopback address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a loopback address; or false otherwise.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -328,7 +328,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is an link local address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a link local address; or false if address is not a link local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -339,7 +339,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the InetAddress is a site local address.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the InetAddress is
|
||||
* @return a {@code boolean} indicating if the InetAddress is
|
||||
* a site local address; or false if address is not a site local unicast address.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -350,7 +350,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has global scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of global scope, false if it is not
|
||||
* of global scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -362,7 +362,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has node scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of node-local scope, false if it is not
|
||||
* of node-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -374,7 +374,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has link scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of link-local scope, false if it is not
|
||||
* of link-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -386,7 +386,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has site scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of site-local scope, false if it is not
|
||||
* of site-local scope or it is not a multicast address
|
||||
* @since 1.4
|
||||
@ -398,7 +398,7 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Utility routine to check if the multicast address has organization scope.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating if the address has
|
||||
* @return a {@code boolean} indicating if the address has
|
||||
* is a multicast address of organization-local scope,
|
||||
* false if it is not of organization-local scope
|
||||
* or it is not a multicast address
|
||||
@ -424,9 +424,9 @@ class InetAddress implements java.io.Serializable {
|
||||
* in an IllegalArgumentException being thrown.
|
||||
*
|
||||
* @param timeout the time, in milliseconds, before the call aborts
|
||||
* @return a <code>boolean</code> indicating if the address is reachable.
|
||||
* @return a {@code boolean} indicating if the address is reachable.
|
||||
* @throws IOException if a network error occurs
|
||||
* @throws IllegalArgumentException if <code>timeout</code> is negative.
|
||||
* @throws IllegalArgumentException if {@code timeout} is negative.
|
||||
* @since 1.5
|
||||
*/
|
||||
public boolean isReachable(int timeout) throws IOException {
|
||||
@ -442,10 +442,10 @@ class InetAddress implements java.io.Serializable {
|
||||
* privilege can be obtained, otherwise it will try to establish
|
||||
* a TCP connection on port 7 (Echo) of the destination host.
|
||||
* <p>
|
||||
* The <code>network interface</code> and <code>ttl</code> parameters
|
||||
* The {@code network interface} and {@code ttl} parameters
|
||||
* let the caller specify which network interface the test will go through
|
||||
* and the maximum number of hops the packets should go through.
|
||||
* A negative value for the <code>ttl</code> will result in an
|
||||
* A negative value for the {@code ttl} will result in an
|
||||
* IllegalArgumentException being thrown.
|
||||
* <p>
|
||||
* The timeout value, in milliseconds, indicates the maximum amount of time
|
||||
@ -458,9 +458,9 @@ class InetAddress implements java.io.Serializable {
|
||||
* @param ttl the maximum numbers of hops to try or 0 for the
|
||||
* default
|
||||
* @param timeout the time, in milliseconds, before the call aborts
|
||||
* @throws IllegalArgumentException if either <code>timeout</code>
|
||||
* or <code>ttl</code> are negative.
|
||||
* @return a <code>boolean</code>indicating if the address is reachable.
|
||||
* @throws IllegalArgumentException if either {@code timeout}
|
||||
* or {@code ttl} are negative.
|
||||
* @return a {@code boolean}indicating if the address is reachable.
|
||||
* @throws IOException if a network error occurs
|
||||
* @since 1.5
|
||||
*/
|
||||
@ -486,8 +486,8 @@ class InetAddress implements java.io.Serializable {
|
||||
* {@link #getCanonicalHostName() getCanonicalHostName}.
|
||||
*
|
||||
* <p>If there is a security manager, its
|
||||
* <code>checkConnect</code> method is first called
|
||||
* with the hostname and <code>-1</code>
|
||||
* {@code checkConnect} method is first called
|
||||
* with the hostname and {@code -1}
|
||||
* as its arguments to see if the operation is allowed.
|
||||
* If the operation is not allowed, it will return
|
||||
* the textual representation of the IP address.
|
||||
@ -511,8 +511,8 @@ class InetAddress implements java.io.Serializable {
|
||||
* here without a security check.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkConnect</code> method
|
||||
* with the hostname and <code>-1</code>
|
||||
* calls its {@code checkConnect} method
|
||||
* with the hostname and {@code -1}
|
||||
* as its arguments to see if the calling code is allowed to know
|
||||
* the hostname for this IP address, i.e., to connect to the host.
|
||||
* If the operation is not allowed, it will return
|
||||
@ -539,8 +539,8 @@ class InetAddress implements java.io.Serializable {
|
||||
* the FQDN depending on the underlying system configuration.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkConnect</code> method
|
||||
* with the hostname and <code>-1</code>
|
||||
* calls its {@code checkConnect} method
|
||||
* with the hostname and {@code -1}
|
||||
* as its arguments to see if the calling code is allowed to know
|
||||
* the hostname for this IP address, i.e., to connect to the host.
|
||||
* If the operation is not allowed, it will return
|
||||
@ -566,8 +566,8 @@ class InetAddress implements java.io.Serializable {
|
||||
* Returns the hostname for this address.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkConnect</code> method
|
||||
* with the hostname and <code>-1</code>
|
||||
* calls its {@code checkConnect} method
|
||||
* with the hostname and {@code -1}
|
||||
* as its arguments to see if the calling code is allowed to know
|
||||
* the hostname for this IP address, i.e., to connect to the host.
|
||||
* If the operation is not allowed, it will return
|
||||
@ -633,9 +633,9 @@ class InetAddress implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw IP address of this <code>InetAddress</code>
|
||||
* Returns the raw IP address of this {@code InetAddress}
|
||||
* object. The result is in network byte order: the highest order
|
||||
* byte of the address is in <code>getAddress()[0]</code>.
|
||||
* byte of the address is in {@code getAddress()[0]}.
|
||||
*
|
||||
* @return the raw IP address of this object.
|
||||
*/
|
||||
@ -664,18 +664,18 @@ class InetAddress implements java.io.Serializable {
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same IP address as
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same IP address as
|
||||
* this object.
|
||||
* <p>
|
||||
* Two instances of <code>InetAddress</code> represent the same IP
|
||||
* Two instances of {@code InetAddress} represent the same IP
|
||||
* address if the length of the byte arrays returned by
|
||||
* <code>getAddress</code> is the same for both, and each of the
|
||||
* {@code getAddress} is the same for both, and each of the
|
||||
* array components is the same for the byte arrays.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InetAddress#getAddress()
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
@ -683,7 +683,7 @@ class InetAddress implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts this IP address to a <code>String</code>. The
|
||||
* Converts this IP address to a {@code String}. The
|
||||
* string returned is of the form: hostname / literal IP
|
||||
* address.
|
||||
*
|
||||
@ -974,7 +974,7 @@ class InetAddress implements java.io.Serializable {
|
||||
* No name service is checked for the validity of the address.
|
||||
*
|
||||
* <p> The host name can either be a machine name, such as
|
||||
* "<code>java.sun.com</code>", or a textual representation of its IP
|
||||
* "{@code java.sun.com}", or a textual representation of its IP
|
||||
* address.
|
||||
* <p> No validity checking is done on the host name either.
|
||||
*
|
||||
@ -1019,26 +1019,26 @@ class InetAddress implements java.io.Serializable {
|
||||
* Determines the IP address of a host, given the host's name.
|
||||
*
|
||||
* <p> The host name can either be a machine name, such as
|
||||
* "<code>java.sun.com</code>", or a textual representation of its
|
||||
* "{@code java.sun.com}", or a textual representation of its
|
||||
* IP address. If a literal IP address is supplied, only the
|
||||
* validity of the address format is checked.
|
||||
*
|
||||
* <p> For <code>host</code> specified in literal IPv6 address,
|
||||
* <p> For {@code host} specified in literal IPv6 address,
|
||||
* either the form defined in RFC 2732 or the literal IPv6 address
|
||||
* format defined in RFC 2373 is accepted. IPv6 scoped addresses are also
|
||||
* supported. See <a href="Inet6Address.html#scoped">here</a> for a description of IPv6
|
||||
* scoped addresses.
|
||||
*
|
||||
* <p> If the host is <tt>null</tt> then an <tt>InetAddress</tt>
|
||||
* <p> If the host is {@code null} then an {@code InetAddress}
|
||||
* representing an address of the loopback interface is returned.
|
||||
* See <a href="http://www.ietf.org/rfc/rfc3330.txt">RFC 3330</a>
|
||||
* section 2 and <a href="http://www.ietf.org/rfc/rfc2373.txt">RFC 2373</a>
|
||||
* section 2.5.3. </p>
|
||||
*
|
||||
* @param host the specified host, or <code>null</code>.
|
||||
* @param host the specified host, or {@code null}.
|
||||
* @return an IP address for the given host name.
|
||||
* @exception UnknownHostException if no IP address for the
|
||||
* <code>host</code> could be found, or if a scope_id was specified
|
||||
* {@code host} could be found, or if a scope_id was specified
|
||||
* for a global IPv6 address.
|
||||
* @exception SecurityException if a security manager exists
|
||||
* and its checkConnect method doesn't allow the operation
|
||||
@ -1059,37 +1059,37 @@ class InetAddress implements java.io.Serializable {
|
||||
* based on the configured name service on the system.
|
||||
*
|
||||
* <p> The host name can either be a machine name, such as
|
||||
* "<code>java.sun.com</code>", or a textual representation of its IP
|
||||
* "{@code java.sun.com}", or a textual representation of its IP
|
||||
* address. If a literal IP address is supplied, only the
|
||||
* validity of the address format is checked.
|
||||
*
|
||||
* <p> For <code>host</code> specified in <i>literal IPv6 address</i>,
|
||||
* <p> For {@code host} specified in <i>literal IPv6 address</i>,
|
||||
* either the form defined in RFC 2732 or the literal IPv6 address
|
||||
* format defined in RFC 2373 is accepted. A literal IPv6 address may
|
||||
* also be qualified by appending a scoped zone identifier or scope_id.
|
||||
* The syntax and usage of scope_ids is described
|
||||
* <a href="Inet6Address.html#scoped">here</a>.
|
||||
* <p> If the host is <tt>null</tt> then an <tt>InetAddress</tt>
|
||||
* <p> If the host is {@code null} then an {@code InetAddress}
|
||||
* representing an address of the loopback interface is returned.
|
||||
* See <a href="http://www.ietf.org/rfc/rfc3330.txt">RFC 3330</a>
|
||||
* section 2 and <a href="http://www.ietf.org/rfc/rfc2373.txt">RFC 2373</a>
|
||||
* section 2.5.3. </p>
|
||||
*
|
||||
* <p> If there is a security manager and <code>host</code> is not
|
||||
* null and <code>host.length() </code> is not equal to zero, the
|
||||
* <p> If there is a security manager and {@code host} is not
|
||||
* null and {@code host.length() } is not equal to zero, the
|
||||
* security manager's
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the hostname and <code>-1</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the hostname and {@code -1}
|
||||
* as its arguments to see if the operation is allowed.
|
||||
*
|
||||
* @param host the name of the host, or <code>null</code>.
|
||||
* @param host the name of the host, or {@code null}.
|
||||
* @return an array of all the IP addresses for a given host name.
|
||||
*
|
||||
* @exception UnknownHostException if no IP address for the
|
||||
* <code>host</code> could be found, or if a scope_id was specified
|
||||
* {@code host} could be found, or if a scope_id was specified
|
||||
* for a global IPv6 address.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkConnect
|
||||
*/
|
||||
@ -1389,9 +1389,9 @@ class InetAddress implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an <code>InetAddress</code> object given the raw IP address .
|
||||
* Returns an {@code InetAddress} object given the raw IP address .
|
||||
* The argument is in network byte order: the highest order
|
||||
* byte of the address is in <code>getAddress()[0]</code>.
|
||||
* byte of the address is in {@code getAddress()[0]}.
|
||||
*
|
||||
* <p> This method doesn't block, i.e. no reverse name service lookup
|
||||
* is performed.
|
||||
@ -1417,14 +1417,14 @@ class InetAddress implements java.io.Serializable {
|
||||
/**
|
||||
* Returns the address of the local host. This is achieved by retrieving
|
||||
* the name of the host from the system, then resolving that name into
|
||||
* an <code>InetAddress</code>.
|
||||
* an {@code InetAddress}.
|
||||
*
|
||||
* <P>Note: The resolved address may be cached for a short period of time.
|
||||
* </P>
|
||||
*
|
||||
* <p>If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the local host name and <code>-1</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the local host name and {@code -1}
|
||||
* as its arguments to see if the operation is allowed.
|
||||
* If the operation is not allowed, an InetAddress representing
|
||||
* the loopback address is returned.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,7 +43,7 @@ import java.io.ObjectStreamField;
|
||||
* as returned values.
|
||||
* <p>
|
||||
* The <i>wildcard</i> is a special local IP address. It usually means "any"
|
||||
* and can only be used for <code>bind</code> operations.
|
||||
* and can only be used for {@code bind} operations.
|
||||
*
|
||||
* @see java.net.Socket
|
||||
* @see java.net.ServerSocket
|
||||
@ -155,8 +155,8 @@ public class InetSocketAddress
|
||||
* and the port number a specified value.
|
||||
* <p>
|
||||
* A valid port value is between 0 and 65535.
|
||||
* A port number of <code>zero</code> will let the system pick up an
|
||||
* ephemeral port in a <code>bind</code> operation.
|
||||
* A port number of {@code zero} will let the system pick up an
|
||||
* ephemeral port in a {@code bind} operation.
|
||||
* <p>
|
||||
* @param port The port number
|
||||
* @throws IllegalArgumentException if the port parameter is outside the specified
|
||||
@ -171,10 +171,10 @@ public class InetSocketAddress
|
||||
* Creates a socket address from an IP address and a port number.
|
||||
* <p>
|
||||
* A valid port value is between 0 and 65535.
|
||||
* A port number of <code>zero</code> will let the system pick up an
|
||||
* ephemeral port in a <code>bind</code> operation.
|
||||
* A port number of {@code zero} will let the system pick up an
|
||||
* ephemeral port in a {@code bind} operation.
|
||||
* <P>
|
||||
* A <code>null</code> address will assign the <i>wildcard</i> address.
|
||||
* A {@code null} address will assign the <i>wildcard</i> address.
|
||||
* <p>
|
||||
* @param addr The IP address
|
||||
* @param port The port number
|
||||
@ -195,13 +195,13 @@ public class InetSocketAddress
|
||||
* An attempt will be made to resolve the hostname into an InetAddress.
|
||||
* If that attempt fails, the address will be flagged as <I>unresolved</I>.
|
||||
* <p>
|
||||
* If there is a security manager, its <code>checkConnect</code> method
|
||||
* If there is a security manager, its {@code checkConnect} method
|
||||
* is called with the host name as its argument to check the permissiom
|
||||
* to resolve it. This could result in a SecurityException.
|
||||
* <P>
|
||||
* A valid port value is between 0 and 65535.
|
||||
* A port number of <code>zero</code> will let the system pick up an
|
||||
* ephemeral port in a <code>bind</code> operation.
|
||||
* A port number of {@code zero} will let the system pick up an
|
||||
* ephemeral port in a {@code bind} operation.
|
||||
* <P>
|
||||
* @param hostname the Host name
|
||||
* @param port The port number
|
||||
@ -237,8 +237,8 @@ public class InetSocketAddress
|
||||
* The address will be flagged as <I>unresolved</I>.
|
||||
* <p>
|
||||
* A valid port value is between 0 and 65535.
|
||||
* A port number of <code>zero</code> will let the system pick up an
|
||||
* ephemeral port in a <code>bind</code> operation.
|
||||
* A port number of {@code zero} will let the system pick up an
|
||||
* ephemeral port in a {@code bind} operation.
|
||||
* <P>
|
||||
* @param host the Host name
|
||||
* @param port The port number
|
||||
@ -246,7 +246,7 @@ public class InetSocketAddress
|
||||
* the range of valid port values, or if the hostname
|
||||
* parameter is <TT>null</TT>.
|
||||
* @see #isUnresolved()
|
||||
* @return a <code>InetSocketAddress</code> representing the unresolved
|
||||
* @return a {@code InetSocketAddress} representing the unresolved
|
||||
* socket address
|
||||
* @since 1.5
|
||||
*/
|
||||
@ -326,16 +326,16 @@ public class InetSocketAddress
|
||||
|
||||
/**
|
||||
*
|
||||
* Gets the <code>InetAddress</code>.
|
||||
* Gets the {@code InetAddress}.
|
||||
*
|
||||
* @return the InetAdress or <code>null</code> if it is unresolved.
|
||||
* @return the InetAdress or {@code null} if it is unresolved.
|
||||
*/
|
||||
public final InetAddress getAddress() {
|
||||
return holder.getAddress();
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the <code>hostname</code>.
|
||||
* Gets the {@code hostname}.
|
||||
* Note: This method may trigger a name service reverse lookup if the
|
||||
* address was created with a literal IP address.
|
||||
*
|
||||
@ -360,8 +360,8 @@ public class InetSocketAddress
|
||||
/**
|
||||
* Checks whether the address has been resolved or not.
|
||||
*
|
||||
* @return <code>true</code> if the hostname couldn't be resolved into
|
||||
* an <code>InetAddress</code>.
|
||||
* @return {@code true} if the hostname couldn't be resolved into
|
||||
* an {@code InetAddress}.
|
||||
*/
|
||||
public final boolean isUnresolved() {
|
||||
return holder.isUnresolved();
|
||||
@ -382,11 +382,11 @@ public class InetSocketAddress
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same address as
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same address as
|
||||
* this object.
|
||||
* <p>
|
||||
* Two instances of <code>InetSocketAddress</code> represent the same
|
||||
* Two instances of {@code InetSocketAddress} represent the same
|
||||
* address if both the InetAddresses (or hostnames if it is unresolved) and port
|
||||
* numbers are equal.
|
||||
* If both addresses are unresolved, then the hostname and the port number
|
||||
@ -396,8 +396,8 @@ public class InetSocketAddress
|
||||
* considered equal.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InetAddress#equals(java.lang.Object)
|
||||
*/
|
||||
@Override
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -47,23 +47,23 @@ public class InterfaceAddress {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an <code>InetAddress</code> for this address.
|
||||
* Returns an {@code InetAddress} for this address.
|
||||
*
|
||||
* @return the <code>InetAddress</code> for this address.
|
||||
* @return the {@code InetAddress} for this address.
|
||||
*/
|
||||
public InetAddress getAddress() {
|
||||
return address;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an <code>InetAddress</code> for the brodcast address
|
||||
* Returns an {@code InetAddress} for the brodcast address
|
||||
* for this InterfaceAddress.
|
||||
* <p>
|
||||
* Only IPv4 networks have broadcast address therefore, in the case
|
||||
* of an IPv6 network, <code>null</code> will be returned.
|
||||
* of an IPv6 network, {@code null} will be returned.
|
||||
*
|
||||
* @return the <code>InetAddress</code> representing the broadcast
|
||||
* address or <code>null</code> if there is no broadcast address.
|
||||
* @return the {@code InetAddress} representing the broadcast
|
||||
* address or {@code null} if there is no broadcast address.
|
||||
*/
|
||||
public InetAddress getBroadcast() {
|
||||
return broadcast;
|
||||
@ -76,7 +76,7 @@ public class InterfaceAddress {
|
||||
* or 24 (255.255.255.0). <p>
|
||||
* Typical IPv6 values would be 128 (::1/128) or 10 (fe80::203:baff:fe27:1243/10)
|
||||
*
|
||||
* @return a <code>short</code> representing the prefix length for the
|
||||
* @return a {@code short} representing the prefix length for the
|
||||
* subnet of that address.
|
||||
*/
|
||||
public short getNetworkPrefixLength() {
|
||||
@ -85,17 +85,17 @@ public class InterfaceAddress {
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same interface address as
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same interface address as
|
||||
* this object.
|
||||
* <p>
|
||||
* Two instances of <code>InterfaceAddress</code> represent the same
|
||||
* Two instances of {@code InterfaceAddress} represent the same
|
||||
* address if the InetAddress, the prefix length and the broadcast are
|
||||
* the same for both.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InterfaceAddress#hashCode()
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
@ -122,7 +122,7 @@ public class InterfaceAddress {
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts this Interface address to a <code>String</code>. The
|
||||
* Converts this Interface address to a {@code String}. The
|
||||
* string returned is of the form: InetAddress / prefix length [ broadcast address ].
|
||||
*
|
||||
* @return a string representation of this Interface address.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -45,18 +45,14 @@ import sun.net.www.ParseUtil;
|
||||
*
|
||||
* <p>for example:
|
||||
*
|
||||
* <p><code>
|
||||
* jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class<br>
|
||||
* </code>
|
||||
* <p>{@code jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class}
|
||||
*
|
||||
* <p>Jar URLs should be used to refer to a JAR file or entries in
|
||||
* a JAR file. The example above is a JAR URL which refers to a JAR
|
||||
* entry. If the entry name is omitted, the URL refers to the whole
|
||||
* JAR file:
|
||||
*
|
||||
* <code>
|
||||
* jar:http://www.foo.com/bar/baz.jar!/
|
||||
* </code>
|
||||
* {@code jar:http://www.foo.com/bar/baz.jar!/}
|
||||
*
|
||||
* <p>Users should cast the generic URLConnection to a
|
||||
* JarURLConnection when they know that the URL they created is a JAR
|
||||
@ -76,19 +72,19 @@ import sun.net.www.ParseUtil;
|
||||
* <dl>
|
||||
*
|
||||
* <dt>A Jar entry
|
||||
* <dd><code>jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class</code>
|
||||
* <dd>{@code jar:http://www.foo.com/bar/baz.jar!/COM/foo/Quux.class}
|
||||
*
|
||||
* <dt>A Jar file
|
||||
* <dd><code>jar:http://www.foo.com/bar/baz.jar!/</code>
|
||||
* <dd>{@code jar:http://www.foo.com/bar/baz.jar!/}
|
||||
*
|
||||
* <dt>A Jar directory
|
||||
* <dd><code>jar:http://www.foo.com/bar/baz.jar!/COM/foo/</code>
|
||||
* <dd>{@code jar:http://www.foo.com/bar/baz.jar!/COM/foo/}
|
||||
*
|
||||
* </dl>
|
||||
*
|
||||
* <p><code>!/</code> is refered to as the <em>separator</em>.
|
||||
* <p>{@code !/} is refered to as the <em>separator</em>.
|
||||
*
|
||||
* <p>When constructing a JAR url via <code>new URL(context, spec)</code>,
|
||||
* <p>When constructing a JAR url via {@code new URL(context, spec)},
|
||||
* the following rules apply:
|
||||
*
|
||||
* <ul>
|
||||
@ -294,7 +290,7 @@ public abstract class JarURLConnection extends URLConnection {
|
||||
* can only be called once
|
||||
* the connection has been completely verified by reading
|
||||
* from the input stream until the end of the stream has been
|
||||
* reached. Otherwise, this method will return <code>null</code>
|
||||
* reached. Otherwise, this method will return {@code null}
|
||||
*
|
||||
* @return the Certificate object for this connection if the URL
|
||||
* for it points to a JAR file entry, null otherwise.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -39,13 +39,13 @@ public class MalformedURLException extends IOException {
|
||||
private static final long serialVersionUID = -182787522200415866L;
|
||||
|
||||
/**
|
||||
* Constructs a <code>MalformedURLException</code> with no detail message.
|
||||
* Constructs a {@code MalformedURLException} with no detail message.
|
||||
*/
|
||||
public MalformedURLException() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a <code>MalformedURLException</code> with the
|
||||
* Constructs a {@code MalformedURLException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param msg the detail message.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -92,7 +92,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* Create a multicast socket.
|
||||
*
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* its {@code checkListen} method is first called
|
||||
* with 0 as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
* <p>
|
||||
@ -103,7 +103,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* while creating the MulticastSocket
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
* @see SecurityManager#checkListen
|
||||
* @see java.net.DatagramSocket#setReuseAddress(boolean)
|
||||
*/
|
||||
@ -115,8 +115,8 @@ class MulticastSocket extends DatagramSocket {
|
||||
* Create a multicast socket and bind it to a specific port.
|
||||
*
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* with the <code>port</code> argument
|
||||
* its {@code checkListen} method is first called
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
* <p>
|
||||
@ -128,7 +128,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* while creating the MulticastSocket
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
* @see SecurityManager#checkListen
|
||||
* @see java.net.DatagramSocket#setReuseAddress(boolean)
|
||||
*/
|
||||
@ -139,10 +139,10 @@ class MulticastSocket extends DatagramSocket {
|
||||
/**
|
||||
* Create a MulticastSocket bound to the specified socket address.
|
||||
* <p>
|
||||
* Or, if the address is <code>null</code>, create an unbound socket.
|
||||
* Or, if the address is {@code null}, create an unbound socket.
|
||||
* <p>
|
||||
* <p>If there is a security manager,
|
||||
* its <code>checkListen</code> method is first called
|
||||
* its {@code checkListen} method is first called
|
||||
* with the SocketAddress port as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
* <p>
|
||||
@ -150,12 +150,12 @@ class MulticastSocket extends DatagramSocket {
|
||||
* {@link DatagramSocket#setReuseAddress(boolean)} method is
|
||||
* called to enable the SO_REUSEADDR socket option.
|
||||
*
|
||||
* @param bindaddr Socket address to bind to, or <code>null</code> for
|
||||
* @param bindaddr Socket address to bind to, or {@code null} for
|
||||
* an unbound socket.
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* while creating the MulticastSocket
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkListen</code> method doesn't allow the operation.
|
||||
* {@code checkListen} method doesn't allow the operation.
|
||||
* @see SecurityManager#checkListen
|
||||
* @see java.net.DatagramSocket#setReuseAddress(boolean)
|
||||
*
|
||||
@ -197,7 +197,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
|
||||
/**
|
||||
* Set the default time-to-live for multicast packets sent out
|
||||
* on this <code>MulticastSocket</code> in order to control the
|
||||
* on this {@code MulticastSocket} in order to control the
|
||||
* scope of the multicasts.
|
||||
*
|
||||
* <p>The ttl is an <b>unsigned</b> 8-bit quantity, and so <B>must</B> be
|
||||
@ -279,11 +279,11 @@ class MulticastSocket extends DatagramSocket {
|
||||
|
||||
/**
|
||||
* Joins a multicast group. Its behavior may be affected by
|
||||
* <code>setInterface</code> or <code>setNetworkInterface</code>.
|
||||
* {@code setInterface} or {@code setNetworkInterface}.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkMulticast</code> method
|
||||
* with the <code>mcastaddr</code> argument
|
||||
* calls its {@code checkMulticast} method
|
||||
* with the {@code mcastaddr} argument
|
||||
* as its argument.
|
||||
*
|
||||
* @param mcastaddr is the multicast address to join
|
||||
@ -291,7 +291,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException if there is an error joining
|
||||
* or when the address is not a multicast address.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> method doesn't allow the join.
|
||||
* {@code checkMulticast} method doesn't allow the join.
|
||||
*
|
||||
* @see SecurityManager#checkMulticast(InetAddress)
|
||||
*/
|
||||
@ -325,18 +325,18 @@ class MulticastSocket extends DatagramSocket {
|
||||
|
||||
/**
|
||||
* Leave a multicast group. Its behavior may be affected by
|
||||
* <code>setInterface</code> or <code>setNetworkInterface</code>.
|
||||
* {@code setInterface} or {@code setNetworkInterface}.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkMulticast</code> method
|
||||
* with the <code>mcastaddr</code> argument
|
||||
* calls its {@code checkMulticast} method
|
||||
* with the {@code mcastaddr} argument
|
||||
* as its argument.
|
||||
*
|
||||
* @param mcastaddr is the multicast address to leave
|
||||
* @exception IOException if there is an error leaving
|
||||
* or when the address is not a multicast address.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> method doesn't allow the operation.
|
||||
* {@code checkMulticast} method doesn't allow the operation.
|
||||
*
|
||||
* @see SecurityManager#checkMulticast(InetAddress)
|
||||
*/
|
||||
@ -362,8 +362,8 @@ class MulticastSocket extends DatagramSocket {
|
||||
* Joins the specified multicast group at the specified interface.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkMulticast</code> method
|
||||
* with the <code>mcastaddr</code> argument
|
||||
* calls its {@code checkMulticast} method
|
||||
* with the {@code mcastaddr} argument
|
||||
* as its argument.
|
||||
*
|
||||
* @param mcastaddr is the multicast address to join
|
||||
@ -375,7 +375,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException if there is an error joining
|
||||
* or when the address is not a multicast address.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> method doesn't allow the join.
|
||||
* {@code checkMulticast} method doesn't allow the join.
|
||||
* @throws IllegalArgumentException if mcastaddr is null or is a
|
||||
* SocketAddress subclass not supported by this socket
|
||||
*
|
||||
@ -410,8 +410,8 @@ class MulticastSocket extends DatagramSocket {
|
||||
* Leave a multicast group on a specified local interface.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls its <code>checkMulticast</code> method
|
||||
* with the <code>mcastaddr</code> argument
|
||||
* calls its {@code checkMulticast} method
|
||||
* with the {@code mcastaddr} argument
|
||||
* as its argument.
|
||||
*
|
||||
* @param mcastaddr is the multicast address to leave
|
||||
@ -422,7 +422,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException if there is an error leaving
|
||||
* or when the address is not a multicast address.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> method doesn't allow the operation.
|
||||
* {@code checkMulticast} method doesn't allow the operation.
|
||||
* @throws IllegalArgumentException if mcastaddr is null or is a
|
||||
* SocketAddress subclass not supported by this socket
|
||||
*
|
||||
@ -478,7 +478,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* Retrieve the address of the network interface used for
|
||||
* multicast packets.
|
||||
*
|
||||
* @return An <code>InetAddress</code> representing
|
||||
* @return An {@code InetAddress} representing
|
||||
* the address of the network interface used for
|
||||
* multicast packets.
|
||||
*
|
||||
@ -562,7 +562,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
*
|
||||
* @exception SocketException if there is an error in
|
||||
* the underlying protocol, such as a TCP error.
|
||||
* @return the multicast <code>NetworkInterface</code> currently set
|
||||
* @return the multicast {@code NetworkInterface} currently set
|
||||
* @see #setNetworkInterface(NetworkInterface)
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -587,7 +587,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* <p>Because this option is a hint, applications that want to
|
||||
* verify what loopback mode is set to should call
|
||||
* {@link #getLoopbackMode()}
|
||||
* @param disable <code>true</code> to disable the LoopbackMode
|
||||
* @param disable {@code true} to disable the LoopbackMode
|
||||
* @throws SocketException if an error occurs while setting the value
|
||||
* @since 1.4
|
||||
* @see #getLoopbackMode
|
||||
@ -615,18 +615,18 @@ class MulticastSocket extends DatagramSocket {
|
||||
* otherwise it is preferable to set a TTL once on the socket, and
|
||||
* use that default TTL for all packets. This method does <B>not
|
||||
* </B> alter the default TTL for the socket. Its behavior may be
|
||||
* affected by <code>setInterface</code>.
|
||||
* affected by {@code setInterface}.
|
||||
*
|
||||
* <p>If there is a security manager, this method first performs some
|
||||
* security checks. First, if <code>p.getAddress().isMulticastAddress()</code>
|
||||
* security checks. First, if {@code p.getAddress().isMulticastAddress()}
|
||||
* is true, this method calls the
|
||||
* security manager's <code>checkMulticast</code> method
|
||||
* with <code>p.getAddress()</code> and <code>ttl</code> as its arguments.
|
||||
* security manager's {@code checkMulticast} method
|
||||
* with {@code p.getAddress()} and {@code ttl} as its arguments.
|
||||
* If the evaluation of that expression is false,
|
||||
* this method instead calls the security manager's
|
||||
* <code>checkConnect</code> method with arguments
|
||||
* <code>p.getAddress().getHostAddress()</code> and
|
||||
* <code>p.getPort()</code>. Each call to a security manager method
|
||||
* {@code checkConnect} method with arguments
|
||||
* {@code p.getAddress().getHostAddress()} and
|
||||
* {@code p.getPort()}. Each call to a security manager method
|
||||
* could result in a SecurityException if the operation is not allowed.
|
||||
*
|
||||
* @param p is the packet to be sent. The packet should contain
|
||||
@ -639,7 +639,7 @@ class MulticastSocket extends DatagramSocket {
|
||||
* @exception IOException is raised if an error occurs i.e
|
||||
* error while setting ttl.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkMulticast</code> or <code>checkConnect</code>
|
||||
* {@code checkMulticast} or {@code checkConnect}
|
||||
* method doesn't allow the send.
|
||||
*
|
||||
* @deprecated Use the following code or its equivalent instead:
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -177,8 +177,8 @@ public final class NetPermission extends BasicPermission {
|
||||
*
|
||||
* @param name the name of the NetPermission.
|
||||
*
|
||||
* @throws NullPointerException if <code>name</code> is <code>null</code>.
|
||||
* @throws IllegalArgumentException if <code>name</code> is empty.
|
||||
* @throws NullPointerException if {@code name} is {@code null}.
|
||||
* @throws IllegalArgumentException if {@code name} is empty.
|
||||
*/
|
||||
|
||||
public NetPermission(String name)
|
||||
@ -194,8 +194,8 @@ public final class NetPermission extends BasicPermission {
|
||||
* @param name the name of the NetPermission.
|
||||
* @param actions should be null.
|
||||
*
|
||||
* @throws NullPointerException if <code>name</code> is <code>null</code>.
|
||||
* @throws IllegalArgumentException if <code>name</code> is empty.
|
||||
* @throws NullPointerException if {@code name} is {@code null}.
|
||||
* @throws IllegalArgumentException if {@code name} is empty.
|
||||
*/
|
||||
|
||||
public NetPermission(String name, String actions)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -98,9 +98,9 @@ public final class NetworkInterface {
|
||||
* Convenience method to return an Enumeration with all or a
|
||||
* subset of the InetAddresses bound to this network interface.
|
||||
* <p>
|
||||
* If there is a security manager, its <code>checkConnect</code>
|
||||
* If there is a security manager, its {@code checkConnect}
|
||||
* method is called for each InetAddress. Only InetAddresses where
|
||||
* the <code>checkConnect</code> doesn't throw a SecurityException
|
||||
* the {@code checkConnect} doesn't throw a SecurityException
|
||||
* will be returned in the Enumeration. However, if the caller has the
|
||||
* {@link NetPermission}("getNetworkInformation") permission, then all
|
||||
* InetAddresses are returned.
|
||||
@ -154,15 +154,15 @@ public final class NetworkInterface {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a List of all or a subset of the <code>InterfaceAddresses</code>
|
||||
* Get a List of all or a subset of the {@code InterfaceAddresses}
|
||||
* of this network interface.
|
||||
* <p>
|
||||
* If there is a security manager, its <code>checkConnect</code>
|
||||
* If there is a security manager, its {@code checkConnect}
|
||||
* method is called with the InetAddress for each InterfaceAddress.
|
||||
* Only InterfaceAddresses where the <code>checkConnect</code> doesn't throw
|
||||
* Only InterfaceAddresses where the {@code checkConnect} doesn't throw
|
||||
* a SecurityException will be returned in the List.
|
||||
*
|
||||
* @return a <code>List</code> object with all or a subset of the
|
||||
* @return a {@code List} object with all or a subset of the
|
||||
* InterfaceAddresss of this network interface
|
||||
* @since 1.6
|
||||
*/
|
||||
@ -216,10 +216,10 @@ public final class NetworkInterface {
|
||||
|
||||
/**
|
||||
* Returns the parent NetworkInterface of this interface if this is
|
||||
* a subinterface, or <code>null</code> if it is a physical
|
||||
* a subinterface, or {@code null} if it is a physical
|
||||
* (non virtual) interface or has no parent.
|
||||
*
|
||||
* @return The <code>NetworkInterface</code> this interface is attached to.
|
||||
* @return The {@code NetworkInterface} this interface is attached to.
|
||||
* @since 1.6
|
||||
*/
|
||||
public NetworkInterface getParent() {
|
||||
@ -260,15 +260,15 @@ public final class NetworkInterface {
|
||||
* @param name
|
||||
* The name of the network interface.
|
||||
*
|
||||
* @return A <tt>NetworkInterface</tt> with the specified name,
|
||||
* or <tt>null</tt> if there is no network interface
|
||||
* @return A {@code NetworkInterface} with the specified name,
|
||||
* or {@code null} if there is no network interface
|
||||
* with the specified name.
|
||||
*
|
||||
* @throws SocketException
|
||||
* If an I/O error occurs.
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If the specified name is <tt>null</tt>.
|
||||
* If the specified name is {@code null}.
|
||||
*/
|
||||
public static NetworkInterface getByName(String name) throws SocketException {
|
||||
if (name == null)
|
||||
@ -303,17 +303,17 @@ public final class NetworkInterface {
|
||||
* returned.
|
||||
*
|
||||
* @param addr
|
||||
* The <tt>InetAddress</tt> to search with.
|
||||
* The {@code InetAddress} to search with.
|
||||
*
|
||||
* @return A <tt>NetworkInterface</tt>
|
||||
* or <tt>null</tt> if there is no network interface
|
||||
* @return A {@code NetworkInterface}
|
||||
* or {@code null} if there is no network interface
|
||||
* with the specified IP address.
|
||||
*
|
||||
* @throws SocketException
|
||||
* If an I/O error occurs.
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If the specified address is <tt>null</tt>.
|
||||
* If the specified address is {@code null}.
|
||||
*/
|
||||
public static NetworkInterface getByInetAddress(InetAddress addr) throws SocketException {
|
||||
if (addr == null) {
|
||||
@ -378,7 +378,7 @@ public final class NetworkInterface {
|
||||
/**
|
||||
* Returns whether a network interface is up and running.
|
||||
*
|
||||
* @return <code>true</code> if the interface is up and running.
|
||||
* @return {@code true} if the interface is up and running.
|
||||
* @exception SocketException if an I/O error occurs.
|
||||
* @since 1.6
|
||||
*/
|
||||
@ -390,7 +390,7 @@ public final class NetworkInterface {
|
||||
/**
|
||||
* Returns whether a network interface is a loopback interface.
|
||||
*
|
||||
* @return <code>true</code> if the interface is a loopback interface.
|
||||
* @return {@code true} if the interface is a loopback interface.
|
||||
* @exception SocketException if an I/O error occurs.
|
||||
* @since 1.6
|
||||
*/
|
||||
@ -404,7 +404,7 @@ public final class NetworkInterface {
|
||||
* A typical point to point interface would be a PPP connection through
|
||||
* a modem.
|
||||
*
|
||||
* @return <code>true</code> if the interface is a point to point
|
||||
* @return {@code true} if the interface is a point to point
|
||||
* interface.
|
||||
* @exception SocketException if an I/O error occurs.
|
||||
* @since 1.6
|
||||
@ -417,7 +417,7 @@ public final class NetworkInterface {
|
||||
/**
|
||||
* Returns whether a network interface supports multicasting or not.
|
||||
*
|
||||
* @return <code>true</code> if the interface supports Multicasting.
|
||||
* @return {@code true} if the interface supports Multicasting.
|
||||
* @exception SocketException if an I/O error occurs.
|
||||
* @since 1.6
|
||||
*/
|
||||
@ -432,7 +432,7 @@ public final class NetworkInterface {
|
||||
* If a security manager is set, then the caller must have
|
||||
* the permission {@link NetPermission}("getNetworkInformation").
|
||||
*
|
||||
* @return a byte array containing the address, or <code>null</code> if
|
||||
* @return a byte array containing the address, or {@code null} if
|
||||
* the address doesn't exist, is not accessible or a security
|
||||
* manager is set and the caller does not have the permission
|
||||
* NetPermission("getNetworkInformation")
|
||||
@ -481,7 +481,7 @@ public final class NetworkInterface {
|
||||
* can be several virtual interfaces attached to a single physical
|
||||
* interface.
|
||||
*
|
||||
* @return <code>true</code> if this interface is a virtual interface.
|
||||
* @return {@code true} if this interface is a virtual interface.
|
||||
* @since 1.6
|
||||
*/
|
||||
public boolean isVirtual() {
|
||||
@ -497,16 +497,16 @@ public final class NetworkInterface {
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same NetworkInterface
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same NetworkInterface
|
||||
* as this object.
|
||||
* <p>
|
||||
* Two instances of <code>NetworkInterface</code> represent the same
|
||||
* Two instances of {@code NetworkInterface} represent the same
|
||||
* NetworkInterface if both name and addrs are the same for both.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InetAddress#getAddress()
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2001, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -43,11 +43,11 @@ public final class PasswordAuthentication {
|
||||
private char[] password;
|
||||
|
||||
/**
|
||||
* Creates a new <code>PasswordAuthentication</code> object from the given
|
||||
* Creates a new {@code PasswordAuthentication} object from the given
|
||||
* user name and password.
|
||||
*
|
||||
* <p> Note that the given user password is cloned before it is stored in
|
||||
* the new <code>PasswordAuthentication</code> object.
|
||||
* the new {@code PasswordAuthentication} object.
|
||||
*
|
||||
* @param userName the user name
|
||||
* @param password the user's password
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -36,7 +36,7 @@ public class PortUnreachableException extends SocketException {
|
||||
private static final long serialVersionUID = 8462541992376507323L;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>PortUnreachableException</code> with a
|
||||
* Constructs a new {@code PortUnreachableException} with a
|
||||
* detail message.
|
||||
* @param msg the detail message
|
||||
*/
|
||||
@ -45,7 +45,7 @@ public class PortUnreachableException extends SocketException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Construct a new <code>PortUnreachableException</code> with no
|
||||
* Construct a new {@code PortUnreachableException} with no
|
||||
* detailed message.
|
||||
*/
|
||||
public PortUnreachableException() {}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -39,7 +39,7 @@ class ProtocolException extends IOException {
|
||||
private static final long serialVersionUID = -6098449442062388080L;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>ProtocolException</code> with the
|
||||
* Constructs a new {@code ProtocolException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param host the detail message.
|
||||
@ -49,7 +49,7 @@ class ProtocolException extends IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new <code>ProtocolException</code> with no detail message.
|
||||
* Constructs a new {@code ProtocolException} with no detail message.
|
||||
*/
|
||||
public ProtocolException() {
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -28,7 +28,7 @@ package java.net;
|
||||
/**
|
||||
* This class represents a proxy setting, typically a type (http, socks) and
|
||||
* a socket address.
|
||||
* A <code>Proxy</code> is an immutable object.
|
||||
* A {@code Proxy} is an immutable object.
|
||||
*
|
||||
* @see java.net.ProxySelector
|
||||
* @author Yingxian Wang
|
||||
@ -61,17 +61,17 @@ public class Proxy {
|
||||
private SocketAddress sa;
|
||||
|
||||
/**
|
||||
* A proxy setting that represents a <code>DIRECT</code> connection,
|
||||
* A proxy setting that represents a {@code DIRECT} connection,
|
||||
* basically telling the protocol handler not to use any proxying.
|
||||
* Used, for instance, to create sockets bypassing any other global
|
||||
* proxy settings (like SOCKS):
|
||||
* <P>
|
||||
* <code>Socket s = new Socket(Proxy.NO_PROXY);</code><br>
|
||||
* {@code Socket s = new Socket(Proxy.NO_PROXY);}<br>
|
||||
* <P>
|
||||
*/
|
||||
public final static Proxy NO_PROXY = new Proxy();
|
||||
|
||||
// Creates the proxy that represents a <code>DIRECT</code> connection.
|
||||
// Creates the proxy that represents a {@code DIRECT} connection.
|
||||
private Proxy() {
|
||||
type = Type.DIRECT;
|
||||
sa = null;
|
||||
@ -82,11 +82,11 @@ public class Proxy {
|
||||
* Certain combinations are illegal. For instance, for types Http, and
|
||||
* Socks, a SocketAddress <b>must</b> be provided.
|
||||
* <P>
|
||||
* Use the <code>Proxy.NO_PROXY</code> constant
|
||||
* Use the {@code Proxy.NO_PROXY} constant
|
||||
* for representing a direct connection.
|
||||
*
|
||||
* @param type the <code>Type</code> of the proxy
|
||||
* @param sa the <code>SocketAddress</code> for that proxy
|
||||
* @param type the {@code Type} of the proxy
|
||||
* @param sa the {@code SocketAddress} for that proxy
|
||||
* @throws IllegalArgumentException when the type and the address are
|
||||
* incompatible
|
||||
*/
|
||||
@ -108,9 +108,9 @@ public class Proxy {
|
||||
|
||||
/**
|
||||
* Returns the socket address of the proxy, or
|
||||
* <code>null</code> if its a direct connection.
|
||||
* {@code null} if its a direct connection.
|
||||
*
|
||||
* @return a <code>SocketAddress</code> representing the socket end
|
||||
* @return a {@code SocketAddress} representing the socket end
|
||||
* point of the proxy
|
||||
*/
|
||||
public SocketAddress address() {
|
||||
@ -121,7 +121,7 @@ public class Proxy {
|
||||
* Constructs a string representation of this Proxy.
|
||||
* This String is constructed by calling toString() on its type
|
||||
* and concatenating " @ " and the toString() result from its address
|
||||
* if its type is not <code>DIRECT</code>.
|
||||
* if its type is not {@code DIRECT}.
|
||||
*
|
||||
* @return a string representation of this object.
|
||||
*/
|
||||
@ -133,16 +133,16 @@ public class Proxy {
|
||||
|
||||
/**
|
||||
* Compares this object against the specified object.
|
||||
* The result is <code>true</code> if and only if the argument is
|
||||
* not <code>null</code> and it represents the same proxy as
|
||||
* The result is {@code true} if and only if the argument is
|
||||
* not {@code null} and it represents the same proxy as
|
||||
* this object.
|
||||
* <p>
|
||||
* Two instances of <code>Proxy</code> represent the same
|
||||
* Two instances of {@code Proxy} represent the same
|
||||
* address if both the SocketAddresses and type are equal.
|
||||
*
|
||||
* @param obj the object to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
* @see java.net.InetSocketAddress#equals(java.lang.Object)
|
||||
*/
|
||||
public final boolean equals(Object obj) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -83,9 +83,9 @@ public abstract class ProxySelector {
|
||||
*
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("getProxySelector")</tt>
|
||||
* {@link NetPermission}{@code ("getProxySelector")}
|
||||
* @see #setDefault(ProxySelector)
|
||||
* @return the system-wide <code>ProxySelector</code>
|
||||
* @return the system-wide {@code ProxySelector}
|
||||
* @since 1.5
|
||||
*/
|
||||
public static ProxySelector getDefault() {
|
||||
@ -102,11 +102,11 @@ public abstract class ProxySelector {
|
||||
* Note: non-standard protocol handlers may ignore this setting.
|
||||
*
|
||||
* @param ps The HTTP proxy selector, or
|
||||
* <code>null</code> to unset the proxy selector.
|
||||
* {@code null} to unset the proxy selector.
|
||||
*
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("setProxySelector")</tt>
|
||||
* {@link NetPermission}{@code ("setProxySelector")}
|
||||
*
|
||||
* @see #getDefault()
|
||||
* @since 1.5
|
||||
@ -127,7 +127,7 @@ public abstract class ProxySelector {
|
||||
* <UL>
|
||||
* <LI>http URI for http connections</LI>
|
||||
* <LI>https URI for https connections
|
||||
* <LI><code>socket://host:port</code><br>
|
||||
* <LI>{@code socket://host:port}<br>
|
||||
* for tcp client sockets connections</LI>
|
||||
* </UL>
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2003, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -74,10 +74,10 @@ public abstract class ResponseCache {
|
||||
*
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("getResponseCache")</tt>
|
||||
* {@link NetPermission}{@code ("getResponseCache")}
|
||||
*
|
||||
* @see #setDefault(ResponseCache)
|
||||
* @return the system-wide <code>ResponseCache</code>
|
||||
* @return the system-wide {@code ResponseCache}
|
||||
* @since 1.5
|
||||
*/
|
||||
public synchronized static ResponseCache getDefault() {
|
||||
@ -94,11 +94,11 @@ public abstract class ResponseCache {
|
||||
* Note: non-standard procotol handlers may ignore this setting.
|
||||
*
|
||||
* @param responseCache The response cache, or
|
||||
* <code>null</code> to unset the cache.
|
||||
* {@code null} to unset the cache.
|
||||
*
|
||||
* @throws SecurityException
|
||||
* If a security manager has been installed and it denies
|
||||
* {@link NetPermission}<tt>("setResponseCache")</tt>
|
||||
* {@link NetPermission}{@code ("setResponseCache")}
|
||||
*
|
||||
* @see #getDefault()
|
||||
* @since 1.5
|
||||
@ -118,14 +118,14 @@ public abstract class ResponseCache {
|
||||
* to get the network resource. If a cached response is returned,
|
||||
* that resource is used instead.
|
||||
*
|
||||
* @param uri a <code>URI</code> used to reference the requested
|
||||
* @param uri a {@code URI} used to reference the requested
|
||||
* network resource
|
||||
* @param rqstMethod a <code>String</code> representing the request
|
||||
* @param rqstMethod a {@code String} representing the request
|
||||
* method
|
||||
* @param rqstHeaders - a Map from request header
|
||||
* field names to lists of field values representing
|
||||
* the current request headers
|
||||
* @return a <code>CacheResponse</code> instance if available
|
||||
* @return a {@code CacheResponse} instance if available
|
||||
* from cache, or null otherwise
|
||||
* @throws IOException if an I/O error occurs
|
||||
* @throws IllegalArgumentException if any one of the arguments is null
|
||||
@ -148,11 +148,11 @@ public abstract class ResponseCache {
|
||||
* use to write the resource into the cache. If the resource is
|
||||
* not to be cached, then put must return null.
|
||||
*
|
||||
* @param uri a <code>URI</code> used to reference the requested
|
||||
* @param uri a {@code URI} used to reference the requested
|
||||
* network resource
|
||||
* @param conn - a URLConnection instance that is used to fetch
|
||||
* the response to be cached
|
||||
* @return a <code>CacheRequest</code> for recording the
|
||||
* @return a {@code CacheRequest} for recording the
|
||||
* response to be cached. Null return indicates that
|
||||
* the caller does not intend to cache the response.
|
||||
* @throws IOException if an I/O error occurs
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -37,7 +37,7 @@ import java.security.PrivilegedExceptionAction;
|
||||
* based on that request, and then possibly returns a result to the requester.
|
||||
* <p>
|
||||
* The actual work of the server socket is performed by an instance
|
||||
* of the <code>SocketImpl</code> class. An application can
|
||||
* of the {@code SocketImpl} class. An application can
|
||||
* change the socket factory that creates the socket
|
||||
* implementation to configure itself to create sockets
|
||||
* appropriate to the local firewall.
|
||||
@ -89,31 +89,31 @@ class ServerSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Creates a server socket, bound to the specified port. A port number
|
||||
* of <code>0</code> means that the port number is automatically
|
||||
* of {@code 0} means that the port number is automatically
|
||||
* allocated, typically from an ephemeral port range. This port
|
||||
* number can then be retrieved by calling {@link #getLocalPort getLocalPort}.
|
||||
* <p>
|
||||
* The maximum queue length for incoming connection indications (a
|
||||
* request to connect) is set to <code>50</code>. If a connection
|
||||
* request to connect) is set to {@code 50}. If a connection
|
||||
* indication arrives when the queue is full, the connection is refused.
|
||||
* <p>
|
||||
* If the application has specified a server socket factory, that
|
||||
* factory's <code>createSocketImpl</code> method is called to create
|
||||
* factory's {@code createSocketImpl} method is called to create
|
||||
* the actual socket implementation. Otherwise a "plain" socket is created.
|
||||
* <p>
|
||||
* If there is a security manager,
|
||||
* its <code>checkListen</code> method is called
|
||||
* with the <code>port</code> argument
|
||||
* its {@code checkListen} method is called
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
*
|
||||
* @param port the port number, or <code>0</code> to use a port
|
||||
* @param port the port number, or {@code 0} to use a port
|
||||
* number that is automatically allocated.
|
||||
*
|
||||
* @exception IOException if an I/O error occurs when opening the socket.
|
||||
* @exception SecurityException
|
||||
* if a security manager exists and its <code>checkListen</code>
|
||||
* if a security manager exists and its {@code checkListen}
|
||||
* method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
@ -131,42 +131,42 @@ class ServerSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Creates a server socket and binds it to the specified local port
|
||||
* number, with the specified backlog.
|
||||
* A port number of <code>0</code> means that the port number is
|
||||
* A port number of {@code 0} means that the port number is
|
||||
* automatically allocated, typically from an ephemeral port range.
|
||||
* This port number can then be retrieved by calling
|
||||
* {@link #getLocalPort getLocalPort}.
|
||||
* <p>
|
||||
* The maximum queue length for incoming connection indications (a
|
||||
* request to connect) is set to the <code>backlog</code> parameter. If
|
||||
* request to connect) is set to the {@code backlog} parameter. If
|
||||
* a connection indication arrives when the queue is full, the
|
||||
* connection is refused.
|
||||
* <p>
|
||||
* If the application has specified a server socket factory, that
|
||||
* factory's <code>createSocketImpl</code> method is called to create
|
||||
* factory's {@code createSocketImpl} method is called to create
|
||||
* the actual socket implementation. Otherwise a "plain" socket is created.
|
||||
* <p>
|
||||
* If there is a security manager,
|
||||
* its <code>checkListen</code> method is called
|
||||
* with the <code>port</code> argument
|
||||
* its {@code checkListen} method is called
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* The <code>backlog</code> argument is the requested maximum number of
|
||||
* The {@code backlog} argument is the requested maximum number of
|
||||
* pending connections on the socket. Its exact semantics are implementation
|
||||
* specific. In particular, an implementation may impose a maximum length
|
||||
* or may choose to ignore the parameter altogther. The value provided
|
||||
* should be greater than <code>0</code>. If it is less than or equal to
|
||||
* <code>0</code>, then an implementation specific default will be used.
|
||||
* should be greater than {@code 0}. If it is less than or equal to
|
||||
* {@code 0}, then an implementation specific default will be used.
|
||||
* <P>
|
||||
*
|
||||
* @param port the port number, or <code>0</code> to use a port
|
||||
* @param port the port number, or {@code 0} to use a port
|
||||
* number that is automatically allocated.
|
||||
* @param backlog requested maximum length of the queue of incoming
|
||||
* connections.
|
||||
*
|
||||
* @exception IOException if an I/O error occurs when opening the socket.
|
||||
* @exception SecurityException
|
||||
* if a security manager exists and its <code>checkListen</code>
|
||||
* if a security manager exists and its {@code checkListen}
|
||||
* method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
@ -189,32 +189,32 @@ class ServerSocket implements java.io.Closeable {
|
||||
* If <i>bindAddr</i> is null, it will default accepting
|
||||
* connections on any/all local addresses.
|
||||
* The port must be between 0 and 65535, inclusive.
|
||||
* A port number of <code>0</code> means that the port number is
|
||||
* A port number of {@code 0} means that the port number is
|
||||
* automatically allocated, typically from an ephemeral port range.
|
||||
* This port number can then be retrieved by calling
|
||||
* {@link #getLocalPort getLocalPort}.
|
||||
*
|
||||
* <P>If there is a security manager, this method
|
||||
* calls its <code>checkListen</code> method
|
||||
* with the <code>port</code> argument
|
||||
* calls its {@code checkListen} method
|
||||
* with the {@code port} argument
|
||||
* as its argument to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* The <code>backlog</code> argument is the requested maximum number of
|
||||
* The {@code backlog} argument is the requested maximum number of
|
||||
* pending connections on the socket. Its exact semantics are implementation
|
||||
* specific. In particular, an implementation may impose a maximum length
|
||||
* or may choose to ignore the parameter altogther. The value provided
|
||||
* should be greater than <code>0</code>. If it is less than or equal to
|
||||
* <code>0</code>, then an implementation specific default will be used.
|
||||
* should be greater than {@code 0}. If it is less than or equal to
|
||||
* {@code 0}, then an implementation specific default will be used.
|
||||
* <P>
|
||||
* @param port the port number, or <code>0</code> to use a port
|
||||
* @param port the port number, or {@code 0} to use a port
|
||||
* number that is automatically allocated.
|
||||
* @param backlog requested maximum length of the queue of incoming
|
||||
* connections.
|
||||
* @param bindAddr the local InetAddress the server will bind to
|
||||
*
|
||||
* @throws SecurityException if a security manager exists and
|
||||
* its <code>checkListen</code> method doesn't allow the operation.
|
||||
* its {@code checkListen} method doesn't allow the operation.
|
||||
*
|
||||
* @throws IOException if an I/O error occurs when opening the socket.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
@ -245,10 +245,10 @@ class ServerSocket implements java.io.Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>SocketImpl</code> attached to this socket, creating
|
||||
* Get the {@code SocketImpl} attached to this socket, creating
|
||||
* it if necessary.
|
||||
*
|
||||
* @return the <code>SocketImpl</code> attached to that ServerSocket.
|
||||
* @return the {@code SocketImpl} attached to that ServerSocket.
|
||||
* @throws SocketException if creation fails.
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -310,17 +310,17 @@ class ServerSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
*
|
||||
* Binds the <code>ServerSocket</code> to a specific address
|
||||
* Binds the {@code ServerSocket} to a specific address
|
||||
* (IP address and port number).
|
||||
* <p>
|
||||
* If the address is <code>null</code>, then the system will pick up
|
||||
* If the address is {@code null}, then the system will pick up
|
||||
* an ephemeral port and a valid local address to bind the socket.
|
||||
* <p>
|
||||
* @param endpoint The IP address and port number to bind to.
|
||||
* @throws IOException if the bind operation fails, or if the socket
|
||||
* is already bound.
|
||||
* @throws SecurityException if a <code>SecurityManager</code> is present and
|
||||
* its <code>checkListen</code> method doesn't allow the operation.
|
||||
* @throws SecurityException if a {@code SecurityManager} is present and
|
||||
* its {@code checkListen} method doesn't allow the operation.
|
||||
* @throws IllegalArgumentException if endpoint is a
|
||||
* SocketAddress subclass not supported by this socket
|
||||
* @since 1.4
|
||||
@ -331,25 +331,25 @@ class ServerSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
*
|
||||
* Binds the <code>ServerSocket</code> to a specific address
|
||||
* Binds the {@code ServerSocket} to a specific address
|
||||
* (IP address and port number).
|
||||
* <p>
|
||||
* If the address is <code>null</code>, then the system will pick up
|
||||
* If the address is {@code null}, then the system will pick up
|
||||
* an ephemeral port and a valid local address to bind the socket.
|
||||
* <P>
|
||||
* The <code>backlog</code> argument is the requested maximum number of
|
||||
* The {@code backlog} argument is the requested maximum number of
|
||||
* pending connections on the socket. Its exact semantics are implementation
|
||||
* specific. In particular, an implementation may impose a maximum length
|
||||
* or may choose to ignore the parameter altogther. The value provided
|
||||
* should be greater than <code>0</code>. If it is less than or equal to
|
||||
* <code>0</code>, then an implementation specific default will be used.
|
||||
* should be greater than {@code 0}. If it is less than or equal to
|
||||
* {@code 0}, then an implementation specific default will be used.
|
||||
* @param endpoint The IP address and port number to bind to.
|
||||
* @param backlog requested maximum length of the queue of
|
||||
* incoming connections.
|
||||
* @throws IOException if the bind operation fails, or if the socket
|
||||
* is already bound.
|
||||
* @throws SecurityException if a <code>SecurityManager</code> is present and
|
||||
* its <code>checkListen</code> method doesn't allow the operation.
|
||||
* @throws SecurityException if a {@code SecurityManager} is present and
|
||||
* its {@code checkListen} method doesn't allow the operation.
|
||||
* @throws IllegalArgumentException if endpoint is a
|
||||
* SocketAddress subclass not supported by this socket
|
||||
* @since 1.4
|
||||
@ -480,18 +480,18 @@ class ServerSocket implements java.io.Closeable {
|
||||
* Listens for a connection to be made to this socket and accepts
|
||||
* it. The method blocks until a connection is made.
|
||||
*
|
||||
* <p>A new Socket <code>s</code> is created and, if there
|
||||
* <p>A new Socket {@code s} is created and, if there
|
||||
* is a security manager,
|
||||
* the security manager's <code>checkAccept</code> method is called
|
||||
* with <code>s.getInetAddress().getHostAddress()</code> and
|
||||
* <code>s.getPort()</code>
|
||||
* the security manager's {@code checkAccept} method is called
|
||||
* with {@code s.getInetAddress().getHostAddress()} and
|
||||
* {@code s.getPort()}
|
||||
* as its arguments to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @exception IOException if an I/O error occurs when waiting for a
|
||||
* connection.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkAccept</code> method doesn't allow the operation.
|
||||
* {@code checkAccept} method doesn't allow the operation.
|
||||
* @exception SocketTimeoutException if a timeout was previously set with setSoTimeout and
|
||||
* the timeout has been reached.
|
||||
* @exception java.nio.channels.IllegalBlockingModeException
|
||||
@ -597,7 +597,7 @@ class ServerSocket implements java.io.Closeable {
|
||||
* method.
|
||||
*
|
||||
* @return the server-socket channel associated with this socket,
|
||||
* or <tt>null</tt> if this socket was not created
|
||||
* or {@code null} if this socket was not created
|
||||
* for a channel
|
||||
*
|
||||
* @since 1.4
|
||||
@ -678,18 +678,18 @@ class ServerSocket implements java.io.Closeable {
|
||||
* <p>
|
||||
* When a TCP connection is closed the connection may remain
|
||||
* in a timeout state for a period of time after the connection
|
||||
* is closed (typically known as the <tt>TIME_WAIT</tt> state
|
||||
* or <tt>2MSL</tt> wait state).
|
||||
* is closed (typically known as the {@code TIME_WAIT} state
|
||||
* or {@code 2MSL} wait state).
|
||||
* For applications using a well known socket address or port
|
||||
* it may not be possible to bind a socket to the required
|
||||
* <tt>SocketAddress</tt> if there is a connection in the
|
||||
* {@code SocketAddress} if there is a connection in the
|
||||
* timeout state involving the socket address or port.
|
||||
* <p>
|
||||
* Enabling {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} prior to
|
||||
* binding the socket using {@link #bind(SocketAddress)} allows the socket
|
||||
* to be bound even though a previous connection is in a timeout state.
|
||||
* <p>
|
||||
* When a <tt>ServerSocket</tt> is created the initial setting
|
||||
* When a {@code ServerSocket} is created the initial setting
|
||||
* of {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is not defined.
|
||||
* Applications can use {@link #getReuseAddress()} to determine the initial
|
||||
* setting of {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR}.
|
||||
@ -717,7 +717,7 @@ class ServerSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not
|
||||
* @return a {@code boolean} indicating whether or not
|
||||
* {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -732,7 +732,7 @@ class ServerSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Returns the implementation address and implementation port of
|
||||
* this socket as a <code>String</code>.
|
||||
* this socket as a {@code String}.
|
||||
* <p>
|
||||
* If there is a security manager set, its {@code checkConnect} method is
|
||||
* called with the local address and {@code -1} as its arguments to see
|
||||
@ -773,14 +773,14 @@ class ServerSocket implements java.io.Closeable {
|
||||
* application. The factory can be specified only once.
|
||||
* <p>
|
||||
* When an application creates a new server socket, the socket
|
||||
* implementation factory's <code>createSocketImpl</code> method is
|
||||
* implementation factory's {@code createSocketImpl} method is
|
||||
* called to create the actual socket implementation.
|
||||
* <p>
|
||||
* Passing <code>null</code> to the method is a no-op unless the factory
|
||||
* Passing {@code null} to the method is a no-op unless the factory
|
||||
* was already set.
|
||||
* <p>
|
||||
* If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
@ -789,7 +789,7 @@ class ServerSocket implements java.io.Closeable {
|
||||
* socket factory.
|
||||
* @exception SocketException if the factory has already been defined.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow the operation.
|
||||
* {@code checkSetFactory} method doesn't allow the operation.
|
||||
* @see java.net.SocketImplFactory#createSocketImpl()
|
||||
* @see SecurityManager#checkSetFactory
|
||||
*/
|
||||
@ -807,7 +807,7 @@ class ServerSocket implements java.io.Closeable {
|
||||
/**
|
||||
* Sets a default proposed value for the
|
||||
* {@link SocketOptions#SO_RCVBUF SO_RCVBUF} option for sockets
|
||||
* accepted from this <tt>ServerSocket</tt>. The value actually set
|
||||
* accepted from this {@code ServerSocket}. The value actually set
|
||||
* in the accepted socket must be determined by calling
|
||||
* {@link Socket#getReceiveBufferSize()} after the socket
|
||||
* is returned by {@link #accept()}.
|
||||
@ -851,13 +851,13 @@ class ServerSocket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Gets the value of the {@link SocketOptions#SO_RCVBUF SO_RCVBUF} option
|
||||
* for this <tt>ServerSocket</tt>, that is the proposed buffer size that
|
||||
* will be used for Sockets accepted from this <tt>ServerSocket</tt>.
|
||||
* for this {@code ServerSocket}, that is the proposed buffer size that
|
||||
* will be used for Sockets accepted from this {@code ServerSocket}.
|
||||
*
|
||||
* <p>Note, the value actually set in the accepted socket is determined by
|
||||
* calling {@link Socket#getReceiveBufferSize()}.
|
||||
* @return the value of the {@link SocketOptions#SO_RCVBUF SO_RCVBUF}
|
||||
* option for this <tt>Socket</tt>.
|
||||
* option for this {@code Socket}.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
* @see #setReceiveBufferSize(int)
|
||||
@ -891,24 +891,24 @@ class ServerSocket implements java.io.Closeable {
|
||||
* compared, with larger values indicating stronger preferences. If the
|
||||
* application prefers short connection time over both low latency and high
|
||||
* bandwidth, for example, then it could invoke this method with the values
|
||||
* <tt>(1, 0, 0)</tt>. If the application prefers high bandwidth above low
|
||||
* {@code (1, 0, 0)}. If the application prefers high bandwidth above low
|
||||
* latency, and low latency above short connection time, then it could
|
||||
* invoke this method with the values <tt>(0, 1, 2)</tt>.
|
||||
* invoke this method with the values {@code (0, 1, 2)}.
|
||||
*
|
||||
* <p> Invoking this method after this socket has been bound
|
||||
* will have no effect. This implies that in order to use this capability
|
||||
* requires the socket to be created with the no-argument constructor.
|
||||
*
|
||||
* @param connectionTime
|
||||
* An <tt>int</tt> expressing the relative importance of a short
|
||||
* An {@code int} expressing the relative importance of a short
|
||||
* connection time
|
||||
*
|
||||
* @param latency
|
||||
* An <tt>int</tt> expressing the relative importance of low
|
||||
* An {@code int} expressing the relative importance of low
|
||||
* latency
|
||||
*
|
||||
* @param bandwidth
|
||||
* An <tt>int</tt> expressing the relative importance of high
|
||||
* An {@code int} expressing the relative importance of high
|
||||
* bandwidth
|
||||
*
|
||||
* @since 1.5
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -39,7 +39,7 @@ import java.security.PrivilegedAction;
|
||||
* between two machines.
|
||||
* <p>
|
||||
* The actual work of the socket is performed by an instance of the
|
||||
* <code>SocketImpl</code> class. An application, by changing
|
||||
* {@code SocketImpl} class. An application, by changing
|
||||
* the socket factory that creates the socket implementation,
|
||||
* can configure itself to create sockets appropriate to the local
|
||||
* firewall.
|
||||
@ -88,14 +88,14 @@ class Socket implements java.io.Closeable {
|
||||
* Creates an unconnected socket, specifying the type of proxy, if any,
|
||||
* that should be used regardless of any other settings.
|
||||
* <P>
|
||||
* If there is a security manager, its <code>checkConnect</code> method
|
||||
* If there is a security manager, its {@code checkConnect} method
|
||||
* is called with the proxy host address and port number
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
* <P>
|
||||
* Examples:
|
||||
* <UL> <LI><code>Socket s = new Socket(Proxy.NO_PROXY);</code> will create
|
||||
* <UL> <LI>{@code Socket s = new Socket(Proxy.NO_PROXY);} will create
|
||||
* a plain socket ignoring any other proxy configuration.</LI>
|
||||
* <LI><code>Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("socks.mydom.com", 1080)));</code>
|
||||
* <LI>{@code Socket s = new Socket(new Proxy(Proxy.Type.SOCKS, new InetSocketAddress("socks.mydom.com", 1080)));}
|
||||
* will create a socket connecting through the specified SOCKS proxy
|
||||
* server.</LI>
|
||||
* </UL>
|
||||
@ -103,7 +103,7 @@ class Socket implements java.io.Closeable {
|
||||
* @param proxy a {@link java.net.Proxy Proxy} object specifying what kind
|
||||
* of proxying should be used.
|
||||
* @throws IllegalArgumentException if the proxy is of an invalid type
|
||||
* or <code>null</code>.
|
||||
* or {@code null}.
|
||||
* @throws SecurityException if a security manager is present and
|
||||
* permission to connect to the proxy is
|
||||
* denied.
|
||||
@ -173,21 +173,22 @@ class Socket implements java.io.Closeable {
|
||||
* Creates a stream socket and connects it to the specified port
|
||||
* number on the named host.
|
||||
* <p>
|
||||
* If the specified host is <tt>null</tt> it is the equivalent of
|
||||
* specifying the address as <tt>{@link java.net.InetAddress#getByName InetAddress.getByName}(null)</tt>.
|
||||
* If the specified host is {@code null} it is the equivalent of
|
||||
* specifying the address as
|
||||
* {@link java.net.InetAddress#getByName InetAddress.getByName}{@code (null)}.
|
||||
* In other words, it is equivalent to specifying an address of the
|
||||
* loopback interface. </p>
|
||||
* <p>
|
||||
* If the application has specified a server socket factory, that
|
||||
* factory's <code>createSocketImpl</code> method is called to create
|
||||
* factory's {@code createSocketImpl} method is called to create
|
||||
* the actual socket implementation. Otherwise a "plain" socket is created.
|
||||
* <p>
|
||||
* If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the host address and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the host address and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
*
|
||||
* @param host the host name, or <code>null</code> for the loopback address.
|
||||
* @param host the host name, or {@code null} for the loopback address.
|
||||
* @param port the port number.
|
||||
*
|
||||
* @exception UnknownHostException if the IP address of
|
||||
@ -195,7 +196,7 @@ class Socket implements java.io.Closeable {
|
||||
*
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
* 0 and 65535, inclusive.
|
||||
@ -217,23 +218,23 @@ class Socket implements java.io.Closeable {
|
||||
* number at the specified IP address.
|
||||
* <p>
|
||||
* If the application has specified a socket factory, that factory's
|
||||
* <code>createSocketImpl</code> method is called to create the
|
||||
* {@code createSocketImpl} method is called to create the
|
||||
* actual socket implementation. Otherwise a "plain" socket is created.
|
||||
* <p>
|
||||
* If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the host address and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the host address and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
*
|
||||
* @param address the IP address.
|
||||
* @param port the port number.
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
* 0 and 65535, inclusive.
|
||||
* @exception NullPointerException if <code>address</code> is null.
|
||||
* @exception NullPointerException if {@code address} is null.
|
||||
* @see java.net.Socket#setSocketImplFactory(java.net.SocketImplFactory)
|
||||
* @see java.net.SocketImpl
|
||||
* @see java.net.SocketImplFactory#createSocketImpl()
|
||||
@ -249,28 +250,29 @@ class Socket implements java.io.Closeable {
|
||||
* the specified remote port. The Socket will also bind() to the local
|
||||
* address and port supplied.
|
||||
* <p>
|
||||
* If the specified host is <tt>null</tt> it is the equivalent of
|
||||
* specifying the address as <tt>{@link java.net.InetAddress#getByName InetAddress.getByName}(null)</tt>.
|
||||
* If the specified host is {@code null} it is the equivalent of
|
||||
* specifying the address as
|
||||
* {@link java.net.InetAddress#getByName InetAddress.getByName}{@code (null)}.
|
||||
* In other words, it is equivalent to specifying an address of the
|
||||
* loopback interface. </p>
|
||||
* <p>
|
||||
* A local port number of <code>zero</code> will let the system pick up a
|
||||
* free port in the <code>bind</code> operation.</p>
|
||||
* A local port number of {@code zero} will let the system pick up a
|
||||
* free port in the {@code bind} operation.</p>
|
||||
* <p>
|
||||
* If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the host address and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the host address and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
*
|
||||
* @param host the name of the remote host, or <code>null</code> for the loopback address.
|
||||
* @param host the name of the remote host, or {@code null} for the loopback address.
|
||||
* @param port the remote port
|
||||
* @param localAddr the local address the socket is bound to, or
|
||||
* <code>null</code> for the <code>anyLocal</code> address.
|
||||
* {@code null} for the {@code anyLocal} address.
|
||||
* @param localPort the local port the socket is bound to, or
|
||||
* <code>zero</code> for a system selected free port.
|
||||
* {@code zero} for a system selected free port.
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter or localPort
|
||||
* parameter is outside the specified range of valid port values,
|
||||
* which is between 0 and 65535, inclusive.
|
||||
@ -289,30 +291,31 @@ class Socket implements java.io.Closeable {
|
||||
* the specified remote port. The Socket will also bind() to the local
|
||||
* address and port supplied.
|
||||
* <p>
|
||||
* If the specified local address is <tt>null</tt> it is the equivalent of
|
||||
* specifying the address as the AnyLocal address (see <tt>{@link java.net.InetAddress#isAnyLocalAddress InetAddress.isAnyLocalAddress}()</tt>).
|
||||
* If the specified local address is {@code null} it is the equivalent of
|
||||
* specifying the address as the AnyLocal address
|
||||
* (see {@link java.net.InetAddress#isAnyLocalAddress InetAddress.isAnyLocalAddress}{@code ()}).
|
||||
* <p>
|
||||
* A local port number of <code>zero</code> will let the system pick up a
|
||||
* free port in the <code>bind</code> operation.</p>
|
||||
* A local port number of {@code zero} will let the system pick up a
|
||||
* free port in the {@code bind} operation.</p>
|
||||
* <p>
|
||||
* If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the host address and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the host address and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
*
|
||||
* @param address the remote address
|
||||
* @param port the remote port
|
||||
* @param localAddr the local address the socket is bound to, or
|
||||
* <code>null</code> for the <code>anyLocal</code> address.
|
||||
* {@code null} for the {@code anyLocal} address.
|
||||
* @param localPort the local port the socket is bound to or
|
||||
* <code>zero</code> for a system selected free port.
|
||||
* {@code zero} for a system selected free port.
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter or localPort
|
||||
* parameter is outside the specified range of valid port values,
|
||||
* which is between 0 and 65535, inclusive.
|
||||
* @exception NullPointerException if <code>address</code> is null.
|
||||
* @exception NullPointerException if {@code address} is null.
|
||||
* @see SecurityManager#checkConnect
|
||||
* @since JDK1.1
|
||||
*/
|
||||
@ -326,33 +329,34 @@ class Socket implements java.io.Closeable {
|
||||
* Creates a stream socket and connects it to the specified port
|
||||
* number on the named host.
|
||||
* <p>
|
||||
* If the specified host is <tt>null</tt> it is the equivalent of
|
||||
* specifying the address as <tt>{@link java.net.InetAddress#getByName InetAddress.getByName}(null)</tt>.
|
||||
* If the specified host is {@code null} it is the equivalent of
|
||||
* specifying the address as
|
||||
* {@link java.net.InetAddress#getByName InetAddress.getByName}{@code (null)}.
|
||||
* In other words, it is equivalent to specifying an address of the
|
||||
* loopback interface. </p>
|
||||
* <p>
|
||||
* If the stream argument is <code>true</code>, this creates a
|
||||
* stream socket. If the stream argument is <code>false</code>, it
|
||||
* If the stream argument is {@code true}, this creates a
|
||||
* stream socket. If the stream argument is {@code false}, it
|
||||
* creates a datagram socket.
|
||||
* <p>
|
||||
* If the application has specified a server socket factory, that
|
||||
* factory's <code>createSocketImpl</code> method is called to create
|
||||
* factory's {@code createSocketImpl} method is called to create
|
||||
* the actual socket implementation. Otherwise a "plain" socket is created.
|
||||
* <p>
|
||||
* If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with the host address and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with the host address and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
* <p>
|
||||
* If a UDP socket is used, TCP/IP related socket options will not apply.
|
||||
*
|
||||
* @param host the host name, or <code>null</code> for the loopback address.
|
||||
* @param host the host name, or {@code null} for the loopback address.
|
||||
* @param port the port number.
|
||||
* @param stream a <code>boolean</code> indicating whether this is
|
||||
* @param stream a {@code boolean} indicating whether this is
|
||||
* a stream socket or a datagram socket.
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
* 0 and 65535, inclusive.
|
||||
@ -373,32 +377,32 @@ class Socket implements java.io.Closeable {
|
||||
* Creates a socket and connects it to the specified port number at
|
||||
* the specified IP address.
|
||||
* <p>
|
||||
* If the stream argument is <code>true</code>, this creates a
|
||||
* stream socket. If the stream argument is <code>false</code>, it
|
||||
* If the stream argument is {@code true}, this creates a
|
||||
* stream socket. If the stream argument is {@code false}, it
|
||||
* creates a datagram socket.
|
||||
* <p>
|
||||
* If the application has specified a server socket factory, that
|
||||
* factory's <code>createSocketImpl</code> method is called to create
|
||||
* factory's {@code createSocketImpl} method is called to create
|
||||
* the actual socket implementation. Otherwise a "plain" socket is created.
|
||||
*
|
||||
* <p>If there is a security manager, its
|
||||
* <code>checkConnect</code> method is called
|
||||
* with <code>host.getHostAddress()</code> and <code>port</code>
|
||||
* {@code checkConnect} method is called
|
||||
* with {@code host.getHostAddress()} and {@code port}
|
||||
* as its arguments. This could result in a SecurityException.
|
||||
* <p>
|
||||
* If UDP socket is used, TCP/IP related socket options will not apply.
|
||||
*
|
||||
* @param host the IP address.
|
||||
* @param port the port number.
|
||||
* @param stream if <code>true</code>, create a stream socket;
|
||||
* @param stream if {@code true}, create a stream socket;
|
||||
* otherwise, create a datagram socket.
|
||||
* @exception IOException if an I/O error occurs when creating the socket.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkConnect</code> method doesn't allow the operation.
|
||||
* {@code checkConnect} method doesn't allow the operation.
|
||||
* @exception IllegalArgumentException if the port parameter is outside
|
||||
* the specified range of valid port values, which is between
|
||||
* 0 and 65535, inclusive.
|
||||
* @exception NullPointerException if <code>host</code> is null.
|
||||
* @exception NullPointerException if {@code host} is null.
|
||||
* @see java.net.Socket#setSocketImplFactory(java.net.SocketImplFactory)
|
||||
* @see java.net.SocketImpl
|
||||
* @see java.net.SocketImplFactory#createSocketImpl()
|
||||
@ -437,8 +441,8 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Creates the socket implementation.
|
||||
*
|
||||
* @param stream a <code>boolean</code> value : <code>true</code> for a TCP socket,
|
||||
* <code>false</code> for UDP.
|
||||
* @param stream a {@code boolean} value : {@code true} for a TCP socket,
|
||||
* {@code false} for UDP.
|
||||
* @throws IOException if creation fails
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -500,10 +504,10 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
|
||||
/**
|
||||
* Get the <code>SocketImpl</code> attached to this socket, creating
|
||||
* Get the {@code SocketImpl} attached to this socket, creating
|
||||
* it if necessary.
|
||||
*
|
||||
* @return the <code>SocketImpl</code> attached to that ServerSocket.
|
||||
* @return the {@code SocketImpl} attached to that ServerSocket.
|
||||
* @throws SocketException if creation fails
|
||||
* @since 1.4
|
||||
*/
|
||||
@ -516,7 +520,7 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Connects this socket to the server.
|
||||
*
|
||||
* @param endpoint the <code>SocketAddress</code>
|
||||
* @param endpoint the {@code SocketAddress}
|
||||
* @throws IOException if an error occurs during the connection
|
||||
* @throws java.nio.channels.IllegalBlockingModeException
|
||||
* if this socket has an associated channel,
|
||||
@ -535,7 +539,7 @@ class Socket implements java.io.Closeable {
|
||||
* A timeout of zero is interpreted as an infinite timeout. The connection
|
||||
* will then block until established or an error occurs.
|
||||
*
|
||||
* @param endpoint the <code>SocketAddress</code>
|
||||
* @param endpoint the {@code SocketAddress}
|
||||
* @param timeout the timeout value to be used in milliseconds.
|
||||
* @throws IOException if an error occurs during the connection
|
||||
* @throws SocketTimeoutException if timeout expires before connecting
|
||||
@ -597,10 +601,10 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Binds the socket to a local address.
|
||||
* <P>
|
||||
* If the address is <code>null</code>, then the system will pick up
|
||||
* If the address is {@code null}, then the system will pick up
|
||||
* an ephemeral port and a valid local address to bind the socket.
|
||||
*
|
||||
* @param bindpoint the <code>SocketAddress</code> to bind to
|
||||
* @param bindpoint the {@code SocketAddress} to bind to
|
||||
* @throws IOException if the bind operation fails, or if the socket
|
||||
* is already bound.
|
||||
* @throws IllegalArgumentException if bindpoint is a
|
||||
@ -668,7 +672,7 @@ class Socket implements java.io.Closeable {
|
||||
* after the socket is closed.
|
||||
*
|
||||
* @return the remote IP address to which this socket is connected,
|
||||
* or <code>null</code> if the socket is not connected.
|
||||
* or {@code null} if the socket is not connected.
|
||||
*/
|
||||
public InetAddress getInetAddress() {
|
||||
if (!isConnected())
|
||||
@ -760,15 +764,15 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Returns the address of the endpoint this socket is connected to, or
|
||||
* <code>null</code> if it is unconnected.
|
||||
* {@code null} if it is unconnected.
|
||||
* <p>
|
||||
* If the socket was connected prior to being {@link #close closed},
|
||||
* then this method will continue to return the connected address
|
||||
* after the socket is closed.
|
||||
*
|
||||
|
||||
* @return a <code>SocketAddress</code> representing the remote endpoint of this
|
||||
* socket, or <code>null</code> if it is not connected yet.
|
||||
* @return a {@code SocketAddress} representing the remote endpoint of this
|
||||
* socket, or {@code null} if it is not connected yet.
|
||||
* @see #getInetAddress()
|
||||
* @see #getPort()
|
||||
* @see #connect(SocketAddress, int)
|
||||
@ -785,10 +789,10 @@ class Socket implements java.io.Closeable {
|
||||
* Returns the address of the endpoint this socket is bound to.
|
||||
* <p>
|
||||
* If a socket bound to an endpoint represented by an
|
||||
* <code>InetSocketAddress </code> is {@link #close closed},
|
||||
* then this method will continue to return an <code>InetSocketAddress</code>
|
||||
* {@code InetSocketAddress } is {@link #close closed},
|
||||
* then this method will continue to return an {@code InetSocketAddress}
|
||||
* after the socket is closed. In that case the returned
|
||||
* <code>InetSocketAddress</code>'s address is the
|
||||
* {@code InetSocketAddress}'s address is the
|
||||
* {@link InetAddress#isAnyLocalAddress wildcard} address
|
||||
* and its port is the local port that it was bound to.
|
||||
* <p>
|
||||
@ -828,7 +832,7 @@ class Socket implements java.io.Closeable {
|
||||
* methods.
|
||||
*
|
||||
* @return the socket channel associated with this socket,
|
||||
* or <tt>null</tt> if this socket was not created
|
||||
* or {@code null} if this socket was not created
|
||||
* for a channel
|
||||
*
|
||||
* @since 1.4
|
||||
@ -843,7 +847,7 @@ class Socket implements java.io.Closeable {
|
||||
*
|
||||
* <p> If this socket has an associated channel then the resulting input
|
||||
* stream delegates all of its operations to the channel. If the channel
|
||||
* is in non-blocking mode then the input stream's <tt>read</tt> operations
|
||||
* is in non-blocking mode then the input stream's {@code read} operations
|
||||
* will throw an {@link java.nio.channels.IllegalBlockingModeException}.
|
||||
*
|
||||
* <p>Under abnormal conditions the underlying connection may be
|
||||
@ -867,7 +871,7 @@ class Socket implements java.io.Closeable {
|
||||
* <li><p>If there are no bytes buffered on the socket, and the
|
||||
* socket has not been closed using {@link #close close}, then
|
||||
* {@link java.io.InputStream#available available} will
|
||||
* return <code>0</code>.
|
||||
* return {@code 0}.
|
||||
*
|
||||
* </ul>
|
||||
*
|
||||
@ -910,7 +914,7 @@ class Socket implements java.io.Closeable {
|
||||
*
|
||||
* <p> If this socket has an associated channel then the resulting output
|
||||
* stream delegates all of its operations to the channel. If the channel
|
||||
* is in non-blocking mode then the output stream's <tt>write</tt>
|
||||
* is in non-blocking mode then the output stream's {@code write}
|
||||
* operations will throw an {@link
|
||||
* java.nio.channels.IllegalBlockingModeException}.
|
||||
*
|
||||
@ -949,8 +953,8 @@ class Socket implements java.io.Closeable {
|
||||
* Enable/disable {@link SocketOptions#TCP_NODELAY TCP_NODELAY}
|
||||
* (disable/enable Nagle's algorithm).
|
||||
*
|
||||
* @param on <code>true</code> to enable TCP_NODELAY,
|
||||
* <code>false</code> to disable.
|
||||
* @param on {@code true} to enable TCP_NODELAY,
|
||||
* {@code false} to disable.
|
||||
*
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -968,7 +972,7 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if {@link SocketOptions#TCP_NODELAY TCP_NODELAY} is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not
|
||||
* @return a {@code boolean} indicating whether or not
|
||||
* {@link SocketOptions#TCP_NODELAY TCP_NODELAY} is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -1066,9 +1070,9 @@ class Socket implements java.io.Closeable {
|
||||
* and there is no capability to distinguish between normal data and urgent
|
||||
* data unless provided by a higher level protocol.
|
||||
*
|
||||
* @param on <code>true</code> to enable
|
||||
* @param on {@code true} to enable
|
||||
* {@link SocketOptions#SO_OOBINLINE SO_OOBINLINE},
|
||||
* <code>false</code> to disable.
|
||||
* {@code false} to disable.
|
||||
*
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -1086,7 +1090,7 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if {@link SocketOptions#SO_OOBINLINE SO_OOBINLINE} is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not
|
||||
* @return a {@code boolean} indicating whether or not
|
||||
* {@link SocketOptions#SO_OOBINLINE SO_OOBINLINE}is enabled.
|
||||
*
|
||||
* @exception SocketException if there is an error
|
||||
@ -1151,7 +1155,7 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Sets the {@link SocketOptions#SO_SNDBUF SO_SNDBUF} option to the
|
||||
* specified value for this <tt>Socket</tt>.
|
||||
* specified value for this {@code Socket}.
|
||||
* The {@link SocketOptions#SO_SNDBUF SO_SNDBUF} option is used by the
|
||||
* platform's networking code as a hint for the size to set the underlying
|
||||
* network I/O buffers.
|
||||
@ -1184,10 +1188,10 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Get value of the {@link SocketOptions#SO_SNDBUF SO_SNDBUF} option
|
||||
* for this <tt>Socket</tt>, that is the buffer size used by the platform
|
||||
* for output on this <tt>Socket</tt>.
|
||||
* for this {@code Socket}, that is the buffer size used by the platform
|
||||
* for output on this {@code Socket}.
|
||||
* @return the value of the {@link SocketOptions#SO_SNDBUF SO_SNDBUF}
|
||||
* option for this <tt>Socket</tt>.
|
||||
* option for this {@code Socket}.
|
||||
*
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -1208,7 +1212,7 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Sets the {@link SocketOptions#SO_RCVBUF SO_RCVBUF} option to the
|
||||
* specified value for this <tt>Socket</tt>. The
|
||||
* specified value for this {@code Socket}. The
|
||||
* {@link SocketOptions#SO_RCVBUF SO_RCVBUF} option is
|
||||
* used by the platform's networking code as a hint for the size to set
|
||||
* the underlying network I/O buffers.
|
||||
@ -1258,11 +1262,11 @@ class Socket implements java.io.Closeable {
|
||||
|
||||
/**
|
||||
* Gets the value of the {@link SocketOptions#SO_RCVBUF SO_RCVBUF} option
|
||||
* for this <tt>Socket</tt>, that is the buffer size used by the platform
|
||||
* for input on this <tt>Socket</tt>.
|
||||
* for this {@code Socket}, that is the buffer size used by the platform
|
||||
* for input on this {@code Socket}.
|
||||
*
|
||||
* @return the value of the {@link SocketOptions#SO_RCVBUF SO_RCVBUF}
|
||||
* option for this <tt>Socket</tt>.
|
||||
* option for this {@code Socket}.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
* @see #setReceiveBufferSize(int)
|
||||
@ -1298,7 +1302,7 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if {@link SocketOptions#SO_KEEPALIVE SO_KEEPALIVE} is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not
|
||||
* @return a {@code boolean} indicating whether or not
|
||||
* {@link SocketOptions#SO_KEEPALIVE SO_KEEPALIVE} is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -1321,7 +1325,7 @@ class Socket implements java.io.Closeable {
|
||||
* 255} or an IllegalArgumentException will be thrown.
|
||||
* <p>Notes:
|
||||
* <p>For Internet Protocol v4 the value consists of an
|
||||
* <code>integer</code>, the least significant 8 bits of which
|
||||
* {@code integer}, the least significant 8 bits of which
|
||||
* represent the value of the TOS octet in IP packets sent by
|
||||
* the socket.
|
||||
* RFC 1349 defines the TOS values as follows:
|
||||
@ -1347,10 +1351,10 @@ class Socket implements java.io.Closeable {
|
||||
* in the underlying platform. Applications should not assume that
|
||||
* they can change the TOS field after the connection.
|
||||
* <p>
|
||||
* For Internet Protocol v6 <code>tc</code> is the value that
|
||||
* For Internet Protocol v6 {@code tc} is the value that
|
||||
* would be placed into the sin6_flowinfo field of the IP header.
|
||||
*
|
||||
* @param tc an <code>int</code> value for the bitset.
|
||||
* @param tc an {@code int} value for the bitset.
|
||||
* @throws SocketException if there is an error setting the
|
||||
* traffic class or type-of-service
|
||||
* @since 1.4
|
||||
@ -1392,11 +1396,11 @@ class Socket implements java.io.Closeable {
|
||||
* <p>
|
||||
* When a TCP connection is closed the connection may remain
|
||||
* in a timeout state for a period of time after the connection
|
||||
* is closed (typically known as the <tt>TIME_WAIT</tt> state
|
||||
* or <tt>2MSL</tt> wait state).
|
||||
* is closed (typically known as the {@code TIME_WAIT} state
|
||||
* or {@code 2MSL} wait state).
|
||||
* For applications using a well known socket address or port
|
||||
* it may not be possible to bind a socket to the required
|
||||
* <tt>SocketAddress</tt> if there is a connection in the
|
||||
* {@code SocketAddress} if there is a connection in the
|
||||
* timeout state involving the socket address or port.
|
||||
* <p>
|
||||
* Enabling {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR}
|
||||
@ -1404,7 +1408,7 @@ class Socket implements java.io.Closeable {
|
||||
* the socket to be bound even though a previous connection is in a timeout
|
||||
* state.
|
||||
* <p>
|
||||
* When a <tt>Socket</tt> is created the initial setting
|
||||
* When a {@code Socket} is created the initial setting
|
||||
* of {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is disabled.
|
||||
* <p>
|
||||
* The behaviour when {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is
|
||||
@ -1430,7 +1434,7 @@ class Socket implements java.io.Closeable {
|
||||
/**
|
||||
* Tests if {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is enabled.
|
||||
*
|
||||
* @return a <code>boolean</code> indicating whether or not
|
||||
* @return a {@code boolean} indicating whether or not
|
||||
* {@link SocketOptions#SO_REUSEADDR SO_REUSEADDR} is enabled.
|
||||
* @exception SocketException if there is an error
|
||||
* in the underlying protocol, such as a TCP error.
|
||||
@ -1536,7 +1540,7 @@ class Socket implements java.io.Closeable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts this socket to a <code>String</code>.
|
||||
* Converts this socket to a {@code String}.
|
||||
*
|
||||
* @return a string representation of this socket.
|
||||
*/
|
||||
@ -1555,7 +1559,7 @@ class Socket implements java.io.Closeable {
|
||||
* Returns the connection state of the socket.
|
||||
* <p>
|
||||
* Note: Closing a socket doesn't clear its connection state, which means
|
||||
* this method will return <code>true</code> for a closed socket
|
||||
* this method will return {@code true} for a closed socket
|
||||
* (see {@link #isClosed()}) if it was successfuly connected prior
|
||||
* to being closed.
|
||||
*
|
||||
@ -1571,7 +1575,7 @@ class Socket implements java.io.Closeable {
|
||||
* Returns the binding state of the socket.
|
||||
* <p>
|
||||
* Note: Closing a socket doesn't clear its binding state, which means
|
||||
* this method will return <code>true</code> for a closed socket
|
||||
* this method will return {@code true} for a closed socket
|
||||
* (see {@link #isClosed()}) if it was successfuly bound prior
|
||||
* to being closed.
|
||||
*
|
||||
@ -1629,13 +1633,13 @@ class Socket implements java.io.Closeable {
|
||||
* application. The factory can be specified only once.
|
||||
* <p>
|
||||
* When an application creates a new client socket, the socket
|
||||
* implementation factory's <code>createSocketImpl</code> method is
|
||||
* implementation factory's {@code createSocketImpl} method is
|
||||
* called to create the actual socket implementation.
|
||||
* <p>
|
||||
* Passing <code>null</code> to the method is a no-op unless the factory
|
||||
* Passing {@code null} to the method is a no-op unless the factory
|
||||
* was already set.
|
||||
* <p>If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
@ -1644,7 +1648,7 @@ class Socket implements java.io.Closeable {
|
||||
* socket factory.
|
||||
* @exception SocketException if the factory is already defined.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow the operation.
|
||||
* {@code checkSetFactory} method doesn't allow the operation.
|
||||
* @see java.net.SocketImplFactory#createSocketImpl()
|
||||
* @see SecurityManager#checkSetFactory
|
||||
*/
|
||||
@ -1678,23 +1682,23 @@ class Socket implements java.io.Closeable {
|
||||
* values represent a lower priority than positive values. If the
|
||||
* application prefers short connection time over both low latency and high
|
||||
* bandwidth, for example, then it could invoke this method with the values
|
||||
* <tt>(1, 0, 0)</tt>. If the application prefers high bandwidth above low
|
||||
* {@code (1, 0, 0)}. If the application prefers high bandwidth above low
|
||||
* latency, and low latency above short connection time, then it could
|
||||
* invoke this method with the values <tt>(0, 1, 2)</tt>.
|
||||
* invoke this method with the values {@code (0, 1, 2)}.
|
||||
*
|
||||
* <p> Invoking this method after this socket has been connected
|
||||
* will have no effect.
|
||||
*
|
||||
* @param connectionTime
|
||||
* An <tt>int</tt> expressing the relative importance of a short
|
||||
* An {@code int} expressing the relative importance of a short
|
||||
* connection time
|
||||
*
|
||||
* @param latency
|
||||
* An <tt>int</tt> expressing the relative importance of low
|
||||
* An {@code int} expressing the relative importance of low
|
||||
* latency
|
||||
*
|
||||
* @param bandwidth
|
||||
* An <tt>int</tt> expressing the relative importance of high
|
||||
* An {@code int} expressing the relative importance of high
|
||||
* bandwidth
|
||||
*
|
||||
* @since 1.5
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,7 +38,7 @@ class SocketException extends IOException {
|
||||
private static final long serialVersionUID = -5935874303556886934L;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>SocketException</code> with the
|
||||
* Constructs a new {@code SocketException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param msg the detail message.
|
||||
@ -48,7 +48,7 @@ class SocketException extends IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new <code>SocketException</code> with no detail message.
|
||||
* Constructs a new {@code SocketException} with no detail message.
|
||||
*/
|
||||
public SocketException() {
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,7 +31,7 @@ import java.io.OutputStream;
|
||||
import java.io.FileDescriptor;
|
||||
|
||||
/**
|
||||
* The abstract class <code>SocketImpl</code> is a common superclass
|
||||
* The abstract class {@code SocketImpl} is a common superclass
|
||||
* of all classes that actually implement sockets. It is used to
|
||||
* create both client and server sockets.
|
||||
* <p>
|
||||
@ -71,7 +71,7 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
/**
|
||||
* Creates either a stream or a datagram socket.
|
||||
*
|
||||
* @param stream if <code>true</code>, create a stream socket;
|
||||
* @param stream if {@code true}, create a stream socket;
|
||||
* otherwise, create a datagram socket.
|
||||
* @exception IOException if an I/O error occurs while creating the
|
||||
* socket.
|
||||
@ -122,7 +122,7 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
|
||||
/**
|
||||
* Sets the maximum queue length for incoming connection indications
|
||||
* (a request to connect) to the <code>count</code> argument. If a
|
||||
* (a request to connect) to the {@code count} argument. If a
|
||||
* connection indication arrives when the queue is full, the
|
||||
* connection is refused.
|
||||
*
|
||||
@ -217,9 +217,9 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>fd</code> field.
|
||||
* Returns the value of this socket's {@code fd} field.
|
||||
*
|
||||
* @return the value of this socket's <code>fd</code> field.
|
||||
* @return the value of this socket's {@code fd} field.
|
||||
* @see java.net.SocketImpl#fd
|
||||
*/
|
||||
protected FileDescriptor getFileDescriptor() {
|
||||
@ -227,9 +227,9 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>address</code> field.
|
||||
* Returns the value of this socket's {@code address} field.
|
||||
*
|
||||
* @return the value of this socket's <code>address</code> field.
|
||||
* @return the value of this socket's {@code address} field.
|
||||
* @see java.net.SocketImpl#address
|
||||
*/
|
||||
protected InetAddress getInetAddress() {
|
||||
@ -237,9 +237,9 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>port</code> field.
|
||||
* Returns the value of this socket's {@code port} field.
|
||||
*
|
||||
* @return the value of this socket's <code>port</code> field.
|
||||
* @return the value of this socket's {@code port} field.
|
||||
* @see java.net.SocketImpl#port
|
||||
*/
|
||||
protected int getPort() {
|
||||
@ -270,9 +270,9 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
protected abstract void sendUrgentData (int data) throws IOException;
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>localport</code> field.
|
||||
* Returns the value of this socket's {@code localport} field.
|
||||
*
|
||||
* @return the value of this socket's <code>localport</code> field.
|
||||
* @return the value of this socket's {@code localport} field.
|
||||
* @see java.net.SocketImpl#localport
|
||||
*/
|
||||
protected int getLocalPort() {
|
||||
@ -296,7 +296,7 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the address and port of this socket as a <code>String</code>.
|
||||
* Returns the address and port of this socket as a {@code String}.
|
||||
*
|
||||
* @return a string representation of this socket.
|
||||
*/
|
||||
@ -328,23 +328,23 @@ public abstract class SocketImpl implements SocketOptions {
|
||||
* values represent a lower priority than positive values. If the
|
||||
* application prefers short connection time over both low latency and high
|
||||
* bandwidth, for example, then it could invoke this method with the values
|
||||
* <tt>(1, 0, 0)</tt>. If the application prefers high bandwidth above low
|
||||
* {@code (1, 0, 0)}. If the application prefers high bandwidth above low
|
||||
* latency, and low latency above short connection time, then it could
|
||||
* invoke this method with the values <tt>(0, 1, 2)</tt>.
|
||||
* invoke this method with the values {@code (0, 1, 2)}.
|
||||
*
|
||||
* By default, this method does nothing, unless it is overridden in a
|
||||
* a sub-class.
|
||||
*
|
||||
* @param connectionTime
|
||||
* An <tt>int</tt> expressing the relative importance of a short
|
||||
* An {@code int} expressing the relative importance of a short
|
||||
* connection time
|
||||
*
|
||||
* @param latency
|
||||
* An <tt>int</tt> expressing the relative importance of low
|
||||
* An {@code int} expressing the relative importance of low
|
||||
* latency
|
||||
*
|
||||
* @param bandwidth
|
||||
* An <tt>int</tt> expressing the relative importance of high
|
||||
* An {@code int} expressing the relative importance of high
|
||||
* bandwidth
|
||||
*
|
||||
* @since 1.5
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1999, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,8 +27,8 @@ package java.net;
|
||||
|
||||
/**
|
||||
* This interface defines a factory for socket implementations. It
|
||||
* is used by the classes <code>Socket</code> and
|
||||
* <code>ServerSocket</code> to create actual socket
|
||||
* is used by the classes {@code Socket} and
|
||||
* {@code ServerSocket} to create actual socket
|
||||
* implementations.
|
||||
*
|
||||
* @author Arthur van Hoff
|
||||
@ -39,9 +39,9 @@ package java.net;
|
||||
public
|
||||
interface SocketImplFactory {
|
||||
/**
|
||||
* Creates a new <code>SocketImpl</code> instance.
|
||||
* Creates a new {@code SocketImpl} instance.
|
||||
*
|
||||
* @return a new instance of <code>SocketImpl</code>.
|
||||
* @return a new instance of {@code SocketImpl}.
|
||||
* @see java.net.SocketImpl
|
||||
*/
|
||||
SocketImpl createSocketImpl();
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -67,8 +67,8 @@ class SocketInputStream extends FileInputStream
|
||||
* Returns the unique {@link java.nio.channels.FileChannel FileChannel}
|
||||
* object associated with this file input stream.</p>
|
||||
*
|
||||
* The <code>getChannel</code> method of <code>SocketInputStream</code>
|
||||
* returns <code>null</code> since it is a socket based stream.</p>
|
||||
* The {@code getChannel} method of {@code SocketInputStream}
|
||||
* returns {@code null} since it is a socket based stream.</p>
|
||||
*
|
||||
* @return the file channel associated with this file input stream
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -115,7 +115,7 @@ public interface SocketOptions {
|
||||
* }
|
||||
* </PRE>
|
||||
*
|
||||
* @param optID an <code>int</code> identifying the option to fetch
|
||||
* @param optID an {@code int} identifying the option to fetch
|
||||
* @return the value of the option
|
||||
* @throws SocketException if the socket is closed
|
||||
* @throws SocketException if <I>optID</I> is unknown along the
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -64,8 +64,8 @@ class SocketOutputStream extends FileOutputStream
|
||||
* Returns the unique {@link java.nio.channels.FileChannel FileChannel}
|
||||
* object associated with this file output stream. </p>
|
||||
*
|
||||
* The <code>getChannel</code> method of <code>SocketOutputStream</code>
|
||||
* returns <code>null</code> since it is a socket based stream.</p>
|
||||
* The {@code getChannel} method of {@code SocketOutputStream}
|
||||
* returns {@code null} since it is a socket based stream.</p>
|
||||
*
|
||||
* @return the file channel associated with this file output stream
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -110,7 +110,7 @@ import sun.security.util.Debug;
|
||||
* </pre>
|
||||
*
|
||||
* is granted to some code, it allows that code to connect to port 7777 on
|
||||
* <code>puffin.eng.sun.com</code>, and to accept connections on that port.
|
||||
* {@code puffin.eng.sun.com}, and to accept connections on that port.
|
||||
*
|
||||
* <p>Similarly, if the following permission:
|
||||
*
|
||||
@ -788,7 +788,7 @@ public final class SocketPermission extends Permission
|
||||
* port range is ignored when p only contains the action, 'resolve'.<p>
|
||||
* </ul>
|
||||
*
|
||||
* Then <code>implies</code> checks each of the following, in order,
|
||||
* Then {@code implies} checks each of the following, in order,
|
||||
* and for each returns true if the stated condition is true:<p>
|
||||
* <ul>
|
||||
* <li> If this object was initialized with a single IP address and one of <i>p</i>'s
|
||||
@ -802,7 +802,7 @@ public final class SocketPermission extends Permission
|
||||
* <li>If this canonical name equals <i>p</i>'s canonical name.<p>
|
||||
* </ul>
|
||||
*
|
||||
* If none of the above are true, <code>implies</code> returns false.
|
||||
* If none of the above are true, {@code implies} returns false.
|
||||
* @param p the permission to check against.
|
||||
*
|
||||
* @return true if the specified permission is implied by this object,
|
||||
@ -1131,7 +1131,7 @@ public final class SocketPermission extends Permission
|
||||
* <p>
|
||||
* SocketPermission objects must be stored in a manner that allows them
|
||||
* to be inserted into the collection in any order, but that also enables the
|
||||
* PermissionCollection <code>implies</code>
|
||||
* PermissionCollection {@code implies}
|
||||
* method to be implemented in an efficient (and consistent) manner.
|
||||
*
|
||||
* @return a new PermissionCollection object suitable for storing SocketPermissions.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -315,7 +315,7 @@ class SocksSocketImpl extends PlainSocketImpl implements SocksConsts {
|
||||
* grants the connections, then the connect is successful and all
|
||||
* further traffic will go to the "real" endpoint.
|
||||
*
|
||||
* @param endpoint the <code>SocketAddress</code> to connect to.
|
||||
* @param endpoint the {@code SocketAddress} to connect to.
|
||||
* @param timeout the timeout value in milliseconds
|
||||
* @throws IOException if the connection can't be established.
|
||||
* @throws SecurityException if there is a security manager and it
|
||||
@ -1032,9 +1032,9 @@ class SocksSocketImpl extends PlainSocketImpl implements SocksConsts {
|
||||
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>address</code> field.
|
||||
* Returns the value of this socket's {@code address} field.
|
||||
*
|
||||
* @return the value of this socket's <code>address</code> field.
|
||||
* @return the value of this socket's {@code address} field.
|
||||
* @see java.net.SocketImpl#address
|
||||
*/
|
||||
@Override
|
||||
@ -1046,9 +1046,9 @@ class SocksSocketImpl extends PlainSocketImpl implements SocksConsts {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this socket's <code>port</code> field.
|
||||
* Returns the value of this socket's {@code port} field.
|
||||
*
|
||||
* @return the value of this socket's <code>port</code> field.
|
||||
* @return the value of this socket's {@code port} field.
|
||||
* @see java.net.SocketImpl#port
|
||||
*/
|
||||
@Override
|
||||
|
||||
@ -67,24 +67,24 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* form has the syntax
|
||||
*
|
||||
* <blockquote>
|
||||
* [<i>scheme</i><tt><b>:</b></tt>]<i>scheme-specific-part</i>[<tt><b>#</b></tt><i>fragment</i>]
|
||||
* [<i>scheme</i><b>{@code :}</b>]<i>scheme-specific-part</i>[<b>{@code #}</b><i>fragment</i>]
|
||||
* </blockquote>
|
||||
*
|
||||
* where square brackets [...] delineate optional components and the characters
|
||||
* <tt><b>:</b></tt> and <tt><b>#</b></tt> stand for themselves.
|
||||
* <b>{@code :}</b> and <b>{@code #}</b> stand for themselves.
|
||||
*
|
||||
* <p> An <i>absolute</i> URI specifies a scheme; a URI that is not absolute is
|
||||
* said to be <i>relative</i>. URIs are also classified according to whether
|
||||
* they are <i>opaque</i> or <i>hierarchical</i>.
|
||||
*
|
||||
* <p> An <i>opaque</i> URI is an absolute URI whose scheme-specific part does
|
||||
* not begin with a slash character (<tt>'/'</tt>). Opaque URIs are not
|
||||
* not begin with a slash character ({@code '/'}). Opaque URIs are not
|
||||
* subject to further parsing. Some examples of opaque URIs are:
|
||||
*
|
||||
* <blockquote><table cellpadding=0 cellspacing=0 summary="layout">
|
||||
* <tr><td><tt>mailto:java-net@java.sun.com</tt><td></tr>
|
||||
* <tr><td><tt>news:comp.lang.java</tt><td></tr>
|
||||
* <tr><td><tt>urn:isbn:096139210x</tt></td></tr>
|
||||
* <tr><td>{@code mailto:java-net@java.sun.com}<td></tr>
|
||||
* <tr><td>{@code news:comp.lang.java}<td></tr>
|
||||
* <tr><td>{@code urn:isbn:096139210x}</td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* <p> A <i>hierarchical</i> URI is either an absolute URI whose
|
||||
@ -93,20 +93,20 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* URIs are:
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>http://java.sun.com/j2se/1.3/</tt><br>
|
||||
* <tt>docs/guide/collections/designfaq.html#28</tt><br>
|
||||
* <tt>../../../demo/jfc/SwingSet2/src/SwingSet2.java</tt><br>
|
||||
* <tt>file:///~/calendar</tt>
|
||||
* {@code http://java.sun.com/j2se/1.3/}<br>
|
||||
* {@code docs/guide/collections/designfaq.html#28}<br>
|
||||
* {@code ../../../demo/jfc/SwingSet2/src/SwingSet2.java}<br>
|
||||
* {@code file:///~/calendar}
|
||||
* </blockquote>
|
||||
*
|
||||
* <p> A hierarchical URI is subject to further parsing according to the syntax
|
||||
*
|
||||
* <blockquote>
|
||||
* [<i>scheme</i><tt><b>:</b></tt>][<tt><b>//</b></tt><i>authority</i>][<i>path</i>][<tt><b>?</b></tt><i>query</i>][<tt><b>#</b></tt><i>fragment</i>]
|
||||
* [<i>scheme</i><b>{@code :}</b>][<b>{@code //}</b><i>authority</i>][<i>path</i>][<b>{@code ?}</b><i>query</i>][<b>{@code #}</b><i>fragment</i>]
|
||||
* </blockquote>
|
||||
*
|
||||
* where the characters <tt><b>:</b></tt>, <tt><b>/</b></tt>,
|
||||
* <tt><b>?</b></tt>, and <tt><b>#</b></tt> stand for themselves. The
|
||||
* where the characters <b>{@code :}</b>, <b>{@code /}</b>,
|
||||
* <b>{@code ?}</b>, and <b>{@code #}</b> stand for themselves. The
|
||||
* scheme-specific part of a hierarchical URI consists of the characters
|
||||
* between the scheme and fragment components.
|
||||
*
|
||||
@ -115,16 +115,16 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* parses according to the familiar syntax
|
||||
*
|
||||
* <blockquote>
|
||||
* [<i>user-info</i><tt><b>@</b></tt>]<i>host</i>[<tt><b>:</b></tt><i>port</i>]
|
||||
* [<i>user-info</i><b>{@code @}</b>]<i>host</i>[<b>{@code :}</b><i>port</i>]
|
||||
* </blockquote>
|
||||
*
|
||||
* where the characters <tt><b>@</b></tt> and <tt><b>:</b></tt> stand for
|
||||
* where the characters <b>{@code @}</b> and <b>{@code :}</b> stand for
|
||||
* themselves. Nearly all URI schemes currently in use are server-based. An
|
||||
* authority component that does not parse in this way is considered to be
|
||||
* registry-based.
|
||||
*
|
||||
* <p> The path component of a hierarchical URI is itself said to be absolute
|
||||
* if it begins with a slash character (<tt>'/'</tt>); otherwise it is
|
||||
* if it begins with a slash character ({@code '/'}); otherwise it is
|
||||
* relative. The path of a hierarchical URI that is either absolute or
|
||||
* specifies an authority is always absolute.
|
||||
*
|
||||
@ -132,21 +132,21 @@ import java.lang.NullPointerException; // for javadoc
|
||||
*
|
||||
* <blockquote><table summary="Describes the components of a URI:scheme,scheme-specific-part,authority,user-info,host,port,path,query,fragment">
|
||||
* <tr><th><i>Component</i></th><th><i>Type</i></th></tr>
|
||||
* <tr><td>scheme</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>scheme-specific-part </td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>authority</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>user-info</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>host</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>port</td><td><tt>int</tt></td></tr>
|
||||
* <tr><td>path</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>query</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>fragment</td><td><tt>String</tt></td></tr>
|
||||
* <tr><td>scheme</td><td>{@code String}</td></tr>
|
||||
* <tr><td>scheme-specific-part </td><td>{@code String}</td></tr>
|
||||
* <tr><td>authority</td><td>{@code String}</td></tr>
|
||||
* <tr><td>user-info</td><td>{@code String}</td></tr>
|
||||
* <tr><td>host</td><td>{@code String}</td></tr>
|
||||
* <tr><td>port</td><td>{@code int}</td></tr>
|
||||
* <tr><td>path</td><td>{@code String}</td></tr>
|
||||
* <tr><td>query</td><td>{@code String}</td></tr>
|
||||
* <tr><td>fragment</td><td>{@code String}</td></tr>
|
||||
* </table></blockquote>
|
||||
*
|
||||
* In a given instance any particular component is either <i>undefined</i> or
|
||||
* <i>defined</i> with a distinct value. Undefined string components are
|
||||
* represented by <tt>null</tt>, while undefined integer components are
|
||||
* represented by <tt>-1</tt>. A string component may be defined to have the
|
||||
* represented by {@code null}, while undefined integer components are
|
||||
* represented by {@code -1}. A string component may be defined to have the
|
||||
* empty string as its value; this is not equivalent to that component being
|
||||
* undefined.
|
||||
*
|
||||
@ -165,10 +165,10 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* The key operations supported by this class are those of
|
||||
* <i>normalization</i>, <i>resolution</i>, and <i>relativization</i>.
|
||||
*
|
||||
* <p> <i>Normalization</i> is the process of removing unnecessary <tt>"."</tt>
|
||||
* and <tt>".."</tt> segments from the path component of a hierarchical URI.
|
||||
* Each <tt>"."</tt> segment is simply removed. A <tt>".."</tt> segment is
|
||||
* removed only if it is preceded by a non-<tt>".."</tt> segment.
|
||||
* <p> <i>Normalization</i> is the process of removing unnecessary {@code "."}
|
||||
* and {@code ".."} segments from the path component of a hierarchical URI.
|
||||
* Each {@code "."} segment is simply removed. A {@code ".."} segment is
|
||||
* removed only if it is preceded by a non-{@code ".."} segment.
|
||||
* Normalization has no effect upon opaque URIs.
|
||||
*
|
||||
* <p> <i>Resolution</i> is the process of resolving one URI against another,
|
||||
@ -179,45 +179,47 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* normalized. The result, for example, of resolving
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>docs/guide/collections/designfaq.html#28 </tt>(1)
|
||||
* {@code docs/guide/collections/designfaq.html#28}
|
||||
*
|
||||
* (1)
|
||||
* </blockquote>
|
||||
*
|
||||
* against the base URI <tt>http://java.sun.com/j2se/1.3/</tt> is the result
|
||||
* against the base URI {@code http://java.sun.com/j2se/1.3/} is the result
|
||||
* URI
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28</tt>
|
||||
* {@code http://java.sun.com/j2se/1.3/docs/guide/collections/designfaq.html#28}
|
||||
* </blockquote>
|
||||
*
|
||||
* Resolving the relative URI
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>../../../demo/jfc/SwingSet2/src/SwingSet2.java </tt>(2)
|
||||
* {@code ../../../demo/jfc/SwingSet2/src/SwingSet2.java} (2)
|
||||
* </blockquote>
|
||||
*
|
||||
* against this result yields, in turn,
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>http://java.sun.com/j2se/1.3/demo/jfc/SwingSet2/src/SwingSet2.java</tt>
|
||||
* {@code http://java.sun.com/j2se/1.3/demo/jfc/SwingSet2/src/SwingSet2.java}
|
||||
* </blockquote>
|
||||
*
|
||||
* Resolution of both absolute and relative URIs, and of both absolute and
|
||||
* relative paths in the case of hierarchical URIs, is supported. Resolving
|
||||
* the URI <tt>file:///~calendar</tt> against any other URI simply yields the
|
||||
* the URI {@code file:///~calendar} against any other URI simply yields the
|
||||
* original URI, since it is absolute. Resolving the relative URI (2) above
|
||||
* against the relative base URI (1) yields the normalized, but still relative,
|
||||
* URI
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>demo/jfc/SwingSet2/src/SwingSet2.java</tt>
|
||||
* {@code demo/jfc/SwingSet2/src/SwingSet2.java}
|
||||
* </blockquote>
|
||||
*
|
||||
* <p> <i>Relativization</i>, finally, is the inverse of resolution: For any
|
||||
* two normalized URIs <i>u</i> and <i>v</i>,
|
||||
*
|
||||
* <blockquote>
|
||||
* <i>u</i><tt>.relativize(</tt><i>u</i><tt>.resolve(</tt><i>v</i><tt>)).equals(</tt><i>v</i><tt>)</tt> and<br>
|
||||
* <i>u</i><tt>.resolve(</tt><i>u</i><tt>.relativize(</tt><i>v</i><tt>)).equals(</tt><i>v</i><tt>)</tt> .<br>
|
||||
* <i>u</i>{@code .relativize(}<i>u</i>{@code .resolve(}<i>v</i>{@code )).equals(}<i>v</i>{@code )} and<br>
|
||||
* <i>u</i>{@code .resolve(}<i>u</i>{@code .relativize(}<i>v</i>{@code )).equals(}<i>v</i>{@code )} .<br>
|
||||
* </blockquote>
|
||||
*
|
||||
* This operation is often useful when constructing a document containing URIs
|
||||
@ -225,16 +227,16 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* possible. For example, relativizing the URI
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>http://java.sun.com/j2se/1.3/docs/guide/index.html</tt>
|
||||
* {@code http://java.sun.com/j2se/1.3/docs/guide/index.html}
|
||||
* </blockquote>
|
||||
*
|
||||
* against the base URI
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>http://java.sun.com/j2se/1.3</tt>
|
||||
* {@code http://java.sun.com/j2se/1.3}
|
||||
* </blockquote>
|
||||
*
|
||||
* yields the relative URI <tt>docs/guide/index.html</tt>.
|
||||
* yields the relative URI {@code docs/guide/index.html}.
|
||||
*
|
||||
*
|
||||
* <h4> Character categories </h4>
|
||||
@ -247,26 +249,26 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* <blockquote><table cellspacing=2 summary="Describes categories alpha,digit,alphanum,unreserved,punct,reserved,escaped,and other">
|
||||
* <tr><th valign=top><i>alpha</i></th>
|
||||
* <td>The US-ASCII alphabetic characters,
|
||||
* <tt>'A'</tt> through <tt>'Z'</tt>
|
||||
* and <tt>'a'</tt> through <tt>'z'</tt></td></tr>
|
||||
* {@code 'A'} through {@code 'Z'}
|
||||
* and {@code 'a'} through {@code 'z'}</td></tr>
|
||||
* <tr><th valign=top><i>digit</i></th>
|
||||
* <td>The US-ASCII decimal digit characters,
|
||||
* <tt>'0'</tt> through <tt>'9'</tt></td></tr>
|
||||
* {@code '0'} through {@code '9'}</td></tr>
|
||||
* <tr><th valign=top><i>alphanum</i></th>
|
||||
* <td>All <i>alpha</i> and <i>digit</i> characters</td></tr>
|
||||
* <tr><th valign=top><i>unreserved</i> </th>
|
||||
* <td>All <i>alphanum</i> characters together with those in the string
|
||||
* <tt>"_-!.~'()*"</tt></td></tr>
|
||||
* {@code "_-!.~'()*"}</td></tr>
|
||||
* <tr><th valign=top><i>punct</i></th>
|
||||
* <td>The characters in the string <tt>",;:$&+="</tt></td></tr>
|
||||
* <td>The characters in the string {@code ",;:$&+="}</td></tr>
|
||||
* <tr><th valign=top><i>reserved</i></th>
|
||||
* <td>All <i>punct</i> characters together with those in the string
|
||||
* <tt>"?/[]@"</tt></td></tr>
|
||||
* {@code "?/[]@"}</td></tr>
|
||||
* <tr><th valign=top><i>escaped</i></th>
|
||||
* <td>Escaped octets, that is, triplets consisting of the percent
|
||||
* character (<tt>'%'</tt>) followed by two hexadecimal digits
|
||||
* (<tt>'0'</tt>-<tt>'9'</tt>, <tt>'A'</tt>-<tt>'F'</tt>, and
|
||||
* <tt>'a'</tt>-<tt>'f'</tt>)</td></tr>
|
||||
* character ({@code '%'}) followed by two hexadecimal digits
|
||||
* ({@code '0'}-{@code '9'}, {@code 'A'}-{@code 'F'}, and
|
||||
* {@code 'a'}-{@code 'f'})</td></tr>
|
||||
* <tr><th valign=top><i>other</i></th>
|
||||
* <td>The Unicode characters that are not in the US-ASCII character set,
|
||||
* are not control characters (according to the {@link
|
||||
@ -306,14 +308,14 @@ import java.lang.NullPointerException; // for javadoc
|
||||
*
|
||||
* <li><p><a name="encode"></a> A character is <i>encoded</i> by replacing it
|
||||
* with the sequence of escaped octets that represent that character in the
|
||||
* UTF-8 character set. The Euro currency symbol (<tt>'\u20AC'</tt>),
|
||||
* for example, is encoded as <tt>"%E2%82%AC"</tt>. <i>(<b>Deviation from
|
||||
* UTF-8 character set. The Euro currency symbol ({@code '\u005Cu20AC'}),
|
||||
* for example, is encoded as {@code "%E2%82%AC"}. <i>(<b>Deviation from
|
||||
* RFC 2396</b>, which does not specify any particular character
|
||||
* set.)</i> </p></li>
|
||||
*
|
||||
* <li><p><a name="quote"></a> An illegal character is <i>quoted</i> simply by
|
||||
* encoding it. The space character, for example, is quoted by replacing it
|
||||
* with <tt>"%20"</tt>. UTF-8 contains US-ASCII, hence for US-ASCII
|
||||
* with {@code "%20"}. UTF-8 contains US-ASCII, hence for US-ASCII
|
||||
* characters this transformation has exactly the effect required by
|
||||
* RFC 2396. </p></li>
|
||||
*
|
||||
@ -325,7 +327,7 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* decoding any encoded non-US-ASCII characters. If a <a
|
||||
* href="../nio/charset/CharsetDecoder.html#ce">decoding error</a> occurs
|
||||
* when decoding the escaped octets then the erroneous octets are replaced by
|
||||
* <tt>'\uFFFD'</tt>, the Unicode replacement character. </p></li>
|
||||
* {@code '\u005CuFFFD'}, the Unicode replacement character. </p></li>
|
||||
*
|
||||
* </ul>
|
||||
*
|
||||
@ -343,7 +345,7 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* #URI(java.lang.String,java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)
|
||||
* multi-argument constructors} quote illegal characters as
|
||||
* required by the components in which they appear. The percent character
|
||||
* (<tt>'%'</tt>) is always quoted by these constructors. Any <i>other</i>
|
||||
* ({@code '%'}) is always quoted by these constructors. Any <i>other</i>
|
||||
* characters are preserved. </p></li>
|
||||
*
|
||||
* <li><p> The {@link #getRawUserInfo() getRawUserInfo}, {@link #getRawPath()
|
||||
@ -379,42 +381,33 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* For any URI <i>u</i>, it is always the case that
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>new URI(</tt><i>u</i><tt>.toString()).equals(</tt><i>u</i><tt>)</tt> .
|
||||
* {@code new URI(}<i>u</i>{@code .toString()).equals(}<i>u</i>{@code )} .
|
||||
* </blockquote>
|
||||
*
|
||||
* For any URI <i>u</i> that does not contain redundant syntax such as two
|
||||
* slashes before an empty authority (as in <tt>file:///tmp/</tt> ) or a
|
||||
* slashes before an empty authority (as in {@code file:///tmp/} ) or a
|
||||
* colon following a host name but no port (as in
|
||||
* <tt>http://java.sun.com:</tt> ), and that does not encode characters
|
||||
* {@code http://java.sun.com:} ), and that does not encode characters
|
||||
* except those that must be quoted, the following identities also hold:
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>new URI(</tt><i>u</i><tt>.getScheme(),<br>
|
||||
* </tt><i>u</i><tt>.getSchemeSpecificPart(),<br>
|
||||
* </tt><i>u</i><tt>.getFragment())<br>
|
||||
* .equals(</tt><i>u</i><tt>)</tt>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p><pre>
|
||||
* new URI(<i>u</i>.getScheme(),
|
||||
* <i>u</i>.getSchemeSpecificPart(),
|
||||
* <i>u</i>.getFragment())
|
||||
* .equals(<i>u</i>)</pre>
|
||||
* in all cases,
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>new URI(</tt><i>u</i><tt>.getScheme(),<br>
|
||||
* </tt><i>u</i><tt>.getUserInfo(), </tt><i>u</i><tt>.getAuthority(),<br>
|
||||
* </tt><i>u</i><tt>.getPath(), </tt><i>u</i><tt>.getQuery(),<br>
|
||||
* </tt><i>u</i><tt>.getFragment())<br>
|
||||
* .equals(</tt><i>u</i><tt>)</tt>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p><pre>
|
||||
* new URI(<i>u</i>.getScheme(),
|
||||
* <i>u</i>.getUserInfo(), <i>u</i>.getAuthority(),
|
||||
* <i>u</i>.getPath(), <i>u</i>.getQuery(),
|
||||
* <i>u</i>.getFragment())
|
||||
* .equals(<i>u</i>)</pre>
|
||||
* if <i>u</i> is hierarchical, and
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>new URI(</tt><i>u</i><tt>.getScheme(),<br>
|
||||
* </tt><i>u</i><tt>.getUserInfo(), </tt><i>u</i><tt>.getHost(), </tt><i>u</i><tt>.getPort(),<br>
|
||||
* </tt><i>u</i><tt>.getPath(), </tt><i>u</i><tt>.getQuery(),<br>
|
||||
* </tt><i>u</i><tt>.getFragment())<br>
|
||||
* .equals(</tt><i>u</i><tt>)</tt>
|
||||
* </blockquote>
|
||||
*
|
||||
* <p><pre>
|
||||
* new URI(<i>u</i>.getScheme(),
|
||||
* <i>u</i>.getUserInfo(), <i>u</i>.getHost(), <i>u</i>.getPort(),
|
||||
* <i>u</i>.getPath(), <i>u</i>.getQuery(),
|
||||
* <i>u</i>.getFragment())
|
||||
* .equals(<i>u</i>)</pre>
|
||||
* if <i>u</i> is hierarchical and has either no authority or a server-based
|
||||
* authority.
|
||||
*
|
||||
@ -425,8 +418,8 @@ import java.lang.NullPointerException; // for javadoc
|
||||
* resource <i>locator</i>. Hence every URL is a URI, abstractly speaking, but
|
||||
* not every URI is a URL. This is because there is another subcategory of
|
||||
* URIs, uniform resource <i>names</i> (URNs), which name resources but do not
|
||||
* specify how to locate them. The <tt>mailto</tt>, <tt>news</tt>, and
|
||||
* <tt>isbn</tt> URIs shown above are examples of URNs.
|
||||
* specify how to locate them. The {@code mailto}, {@code news}, and
|
||||
* {@code isbn} URIs shown above are examples of URNs.
|
||||
*
|
||||
* <p> The conceptual distinction between URIs and URLs is reflected in the
|
||||
* differences between this class and the {@link URL} class.
|
||||
@ -530,12 +523,12 @@ public final class URI
|
||||
* href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>,
|
||||
* Appendix A, <b><i>except for the following deviations:</i></b> </p>
|
||||
*
|
||||
* <ul type=disc>
|
||||
* <ul>
|
||||
*
|
||||
* <li><p> An empty authority component is permitted as long as it is
|
||||
* followed by a non-empty path, a query component, or a fragment
|
||||
* component. This allows the parsing of URIs such as
|
||||
* <tt>"file:///foo/bar"</tt>, which seems to be the intent of
|
||||
* {@code "file:///foo/bar"}, which seems to be the intent of
|
||||
* RFC 2396 although the grammar does not permit it. If the
|
||||
* authority component is empty then the user-information, host, and port
|
||||
* components are undefined. </p></li>
|
||||
@ -543,7 +536,7 @@ public final class URI
|
||||
* <li><p> Empty relative paths are permitted; this seems to be the
|
||||
* intent of RFC 2396 although the grammar does not permit it. The
|
||||
* primary consequence of this deviation is that a standalone fragment
|
||||
* such as <tt>"#foo"</tt> parses as a relative URI with an empty path
|
||||
* such as {@code "#foo"} parses as a relative URI with an empty path
|
||||
* and the given fragment, and can be usefully <a
|
||||
* href="#resolve-frag">resolved</a> against a base URI.
|
||||
*
|
||||
@ -560,12 +553,12 @@ public final class URI
|
||||
* href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>
|
||||
* section 3.2.2 although the grammar does not permit it. The
|
||||
* consequence of this deviation is that the authority component of a
|
||||
* hierarchical URI such as <tt>s://123</tt>, will parse as a server-based
|
||||
* hierarchical URI such as {@code s://123}, will parse as a server-based
|
||||
* authority. </p></li>
|
||||
*
|
||||
* <li><p> IPv6 addresses are permitted for the host component. An IPv6
|
||||
* address must be enclosed in square brackets (<tt>'['</tt> and
|
||||
* <tt>']'</tt>) as specified by <a
|
||||
* address must be enclosed in square brackets ({@code '['} and
|
||||
* {@code ']'}) as specified by <a
|
||||
* href="http://www.ietf.org/rfc/rfc2732.txt">RFC 2732</a>. The
|
||||
* IPv6 address itself must parse according to <a
|
||||
* href="http://www.ietf.org/rfc/rfc2373.txt">RFC 2373</a>. IPv6
|
||||
@ -585,7 +578,7 @@ public final class URI
|
||||
* @param str The string to be parsed into a URI
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>str</tt> is <tt>null</tt>
|
||||
* If {@code str} is {@code null}
|
||||
*
|
||||
* @throws URISyntaxException
|
||||
* If the given string violates RFC 2396, as augmented
|
||||
@ -599,10 +592,10 @@ public final class URI
|
||||
* Constructs a hierarchical URI from the given components.
|
||||
*
|
||||
* <p> If a scheme is given then the path, if also given, must either be
|
||||
* empty or begin with a slash character (<tt>'/'</tt>). Otherwise a
|
||||
* component of the new URI may be left undefined by passing <tt>null</tt>
|
||||
* for the corresponding parameter or, in the case of the <tt>port</tt>
|
||||
* parameter, by passing <tt>-1</tt>.
|
||||
* empty or begin with a slash character ({@code '/'}). Otherwise a
|
||||
* component of the new URI may be left undefined by passing {@code null}
|
||||
* for the corresponding parameter or, in the case of the {@code port}
|
||||
* parameter, by passing {@code -1}.
|
||||
*
|
||||
* <p> This constructor first builds a URI string from the given components
|
||||
* according to the rules specified in <a
|
||||
@ -614,37 +607,37 @@ public final class URI
|
||||
* <li><p> Initially, the result string is empty. </p></li>
|
||||
*
|
||||
* <li><p> If a scheme is given then it is appended to the result,
|
||||
* followed by a colon character (<tt>':'</tt>). </p></li>
|
||||
* followed by a colon character ({@code ':'}). </p></li>
|
||||
*
|
||||
* <li><p> If user information, a host, or a port are given then the
|
||||
* string <tt>"//"</tt> is appended. </p></li>
|
||||
* string {@code "//"} is appended. </p></li>
|
||||
*
|
||||
* <li><p> If user information is given then it is appended, followed by
|
||||
* a commercial-at character (<tt>'@'</tt>). Any character not in the
|
||||
* a commercial-at character ({@code '@'}). Any character not in the
|
||||
* <i>unreserved</i>, <i>punct</i>, <i>escaped</i>, or <i>other</i>
|
||||
* categories is <a href="#quote">quoted</a>. </p></li>
|
||||
*
|
||||
* <li><p> If a host is given then it is appended. If the host is a
|
||||
* literal IPv6 address but is not enclosed in square brackets
|
||||
* (<tt>'['</tt> and <tt>']'</tt>) then the square brackets are added.
|
||||
* ({@code '['} and {@code ']'}) then the square brackets are added.
|
||||
* </p></li>
|
||||
*
|
||||
* <li><p> If a port number is given then a colon character
|
||||
* (<tt>':'</tt>) is appended, followed by the port number in decimal.
|
||||
* ({@code ':'}) is appended, followed by the port number in decimal.
|
||||
* </p></li>
|
||||
*
|
||||
* <li><p> If a path is given then it is appended. Any character not in
|
||||
* the <i>unreserved</i>, <i>punct</i>, <i>escaped</i>, or <i>other</i>
|
||||
* categories, and not equal to the slash character (<tt>'/'</tt>) or the
|
||||
* commercial-at character (<tt>'@'</tt>), is quoted. </p></li>
|
||||
* categories, and not equal to the slash character ({@code '/'}) or the
|
||||
* commercial-at character ({@code '@'}), is quoted. </p></li>
|
||||
*
|
||||
* <li><p> If a query is given then a question-mark character
|
||||
* (<tt>'?'</tt>) is appended, followed by the query. Any character that
|
||||
* ({@code '?'}) is appended, followed by the query. Any character that
|
||||
* is not a <a href="#legal-chars">legal URI character</a> is quoted.
|
||||
* </p></li>
|
||||
*
|
||||
* <li><p> Finally, if a fragment is given then a hash character
|
||||
* (<tt>'#'</tt>) is appended, followed by the fragment. Any character
|
||||
* ({@code '#'}) is appended, followed by the fragment. Any character
|
||||
* that is not a legal URI character is quoted. </p></li>
|
||||
*
|
||||
* </ol>
|
||||
@ -684,8 +677,8 @@ public final class URI
|
||||
* Constructs a hierarchical URI from the given components.
|
||||
*
|
||||
* <p> If a scheme is given then the path, if also given, must either be
|
||||
* empty or begin with a slash character (<tt>'/'</tt>). Otherwise a
|
||||
* component of the new URI may be left undefined by passing <tt>null</tt>
|
||||
* empty or begin with a slash character ({@code '/'}). Otherwise a
|
||||
* component of the new URI may be left undefined by passing {@code null}
|
||||
* for the corresponding parameter.
|
||||
*
|
||||
* <p> This constructor first builds a URI string from the given components
|
||||
@ -698,28 +691,28 @@ public final class URI
|
||||
* <li><p> Initially, the result string is empty. </p></li>
|
||||
*
|
||||
* <li><p> If a scheme is given then it is appended to the result,
|
||||
* followed by a colon character (<tt>':'</tt>). </p></li>
|
||||
* followed by a colon character ({@code ':'}). </p></li>
|
||||
*
|
||||
* <li><p> If an authority is given then the string <tt>"//"</tt> is
|
||||
* <li><p> If an authority is given then the string {@code "//"} is
|
||||
* appended, followed by the authority. If the authority contains a
|
||||
* literal IPv6 address then the address must be enclosed in square
|
||||
* brackets (<tt>'['</tt> and <tt>']'</tt>). Any character not in the
|
||||
* brackets ({@code '['} and {@code ']'}). Any character not in the
|
||||
* <i>unreserved</i>, <i>punct</i>, <i>escaped</i>, or <i>other</i>
|
||||
* categories, and not equal to the commercial-at character
|
||||
* (<tt>'@'</tt>), is <a href="#quote">quoted</a>. </p></li>
|
||||
* ({@code '@'}), is <a href="#quote">quoted</a>. </p></li>
|
||||
*
|
||||
* <li><p> If a path is given then it is appended. Any character not in
|
||||
* the <i>unreserved</i>, <i>punct</i>, <i>escaped</i>, or <i>other</i>
|
||||
* categories, and not equal to the slash character (<tt>'/'</tt>) or the
|
||||
* commercial-at character (<tt>'@'</tt>), is quoted. </p></li>
|
||||
* categories, and not equal to the slash character ({@code '/'}) or the
|
||||
* commercial-at character ({@code '@'}), is quoted. </p></li>
|
||||
*
|
||||
* <li><p> If a query is given then a question-mark character
|
||||
* (<tt>'?'</tt>) is appended, followed by the query. Any character that
|
||||
* ({@code '?'}) is appended, followed by the query. Any character that
|
||||
* is not a <a href="#legal-chars">legal URI character</a> is quoted.
|
||||
* </p></li>
|
||||
*
|
||||
* <li><p> Finally, if a fragment is given then a hash character
|
||||
* (<tt>'#'</tt>) is appended, followed by the fragment. Any character
|
||||
* ({@code '#'}) is appended, followed by the fragment. Any character
|
||||
* that is not a legal URI character is quoted. </p></li>
|
||||
*
|
||||
* </ol>
|
||||
@ -756,15 +749,15 @@ public final class URI
|
||||
/**
|
||||
* Constructs a hierarchical URI from the given components.
|
||||
*
|
||||
* <p> A component may be left undefined by passing <tt>null</tt>.
|
||||
* <p> A component may be left undefined by passing {@code null}.
|
||||
*
|
||||
* <p> This convenience constructor works as if by invoking the
|
||||
* seven-argument constructor as follows:
|
||||
*
|
||||
* <blockquote><tt>
|
||||
* new {@link #URI(String, String, String, int, String, String, String)
|
||||
* URI}(scheme, null, host, -1, path, null, fragment);
|
||||
* </tt></blockquote>
|
||||
* <blockquote>
|
||||
* {@code new} {@link #URI(String, String, String, int, String, String, String)
|
||||
* URI}{@code (scheme, null, host, -1, path, null, fragment);}
|
||||
* </blockquote>
|
||||
*
|
||||
* @param scheme Scheme name
|
||||
* @param host Host name
|
||||
@ -784,7 +777,7 @@ public final class URI
|
||||
/**
|
||||
* Constructs a URI from the given components.
|
||||
*
|
||||
* <p> A component may be left undefined by passing <tt>null</tt>.
|
||||
* <p> A component may be left undefined by passing {@code null}.
|
||||
*
|
||||
* <p> This constructor first builds a URI in string form using the given
|
||||
* components as follows: </p>
|
||||
@ -794,14 +787,14 @@ public final class URI
|
||||
* <li><p> Initially, the result string is empty. </p></li>
|
||||
*
|
||||
* <li><p> If a scheme is given then it is appended to the result,
|
||||
* followed by a colon character (<tt>':'</tt>). </p></li>
|
||||
* followed by a colon character ({@code ':'}). </p></li>
|
||||
*
|
||||
* <li><p> If a scheme-specific part is given then it is appended. Any
|
||||
* character that is not a <a href="#legal-chars">legal URI character</a>
|
||||
* is <a href="#quote">quoted</a>. </p></li>
|
||||
*
|
||||
* <li><p> Finally, if a fragment is given then a hash character
|
||||
* (<tt>'#'</tt>) is appended to the string, followed by the fragment.
|
||||
* ({@code '#'}) is appended to the string, followed by the fragment.
|
||||
* Any character that is not a legal URI character is quoted. </p></li>
|
||||
*
|
||||
* </ol>
|
||||
@ -847,7 +840,7 @@ public final class URI
|
||||
* @return The new URI
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>str</tt> is <tt>null</tt>
|
||||
* If {@code str} is {@code null}
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* If the given string violates RFC 2396
|
||||
@ -882,7 +875,7 @@ public final class URI
|
||||
* cannot always distinguish a malformed server-based authority from a
|
||||
* legitimate registry-based authority. It must therefore treat some
|
||||
* instances of the former as instances of the latter. The authority
|
||||
* component in the URI string <tt>"//foo:bar"</tt>, for example, is not a
|
||||
* component in the URI string {@code "//foo:bar"}, for example, is not a
|
||||
* legal server-based authority but it is legal as a registry-based
|
||||
* authority.
|
||||
*
|
||||
@ -892,7 +885,7 @@ public final class URI
|
||||
* treated as an error. In these cases a statement such as
|
||||
*
|
||||
* <blockquote>
|
||||
* <tt>URI </tt><i>u</i><tt> = new URI(str).parseServerAuthority();</tt>
|
||||
* {@code URI }<i>u</i>{@code = new URI(str).parseServerAuthority();}
|
||||
* </blockquote>
|
||||
*
|
||||
* <p> can be used to ensure that <i>u</i> always refers to a URI that, if
|
||||
@ -936,26 +929,26 @@ public final class URI
|
||||
*
|
||||
* <ol>
|
||||
*
|
||||
* <li><p> All <tt>"."</tt> segments are removed. </p></li>
|
||||
* <li><p> All {@code "."} segments are removed. </p></li>
|
||||
*
|
||||
* <li><p> If a <tt>".."</tt> segment is preceded by a non-<tt>".."</tt>
|
||||
* <li><p> If a {@code ".."} segment is preceded by a non-{@code ".."}
|
||||
* segment then both of these segments are removed. This step is
|
||||
* repeated until it is no longer applicable. </p></li>
|
||||
*
|
||||
* <li><p> If the path is relative, and if its first segment contains a
|
||||
* colon character (<tt>':'</tt>), then a <tt>"."</tt> segment is
|
||||
* colon character ({@code ':'}), then a {@code "."} segment is
|
||||
* prepended. This prevents a relative URI with a path such as
|
||||
* <tt>"a:b/c/d"</tt> from later being re-parsed as an opaque URI with a
|
||||
* scheme of <tt>"a"</tt> and a scheme-specific part of <tt>"b/c/d"</tt>.
|
||||
* {@code "a:b/c/d"} from later being re-parsed as an opaque URI with a
|
||||
* scheme of {@code "a"} and a scheme-specific part of {@code "b/c/d"}.
|
||||
* <b><i>(Deviation from RFC 2396)</i></b> </p></li>
|
||||
*
|
||||
* </ol>
|
||||
*
|
||||
* <p> A normalized path will begin with one or more <tt>".."</tt> segments
|
||||
* if there were insufficient non-<tt>".."</tt> segments preceding them to
|
||||
* allow their removal. A normalized path will begin with a <tt>"."</tt>
|
||||
* <p> A normalized path will begin with one or more {@code ".."} segments
|
||||
* if there were insufficient non-{@code ".."} segments preceding them to
|
||||
* allow their removal. A normalized path will begin with a {@code "."}
|
||||
* segment if one was inserted by step 3 above. Otherwise, a normalized
|
||||
* path will not contain any <tt>"."</tt> or <tt>".."</tt> segments. </p>
|
||||
* path will not contain any {@code "."} or {@code ".."} segments. </p>
|
||||
*
|
||||
* @return A URI equivalent to this URI,
|
||||
* but whose path is in normal form
|
||||
@ -975,7 +968,7 @@ public final class URI
|
||||
* query components are undefined, then a URI with the given fragment but
|
||||
* with all other components equal to those of this URI is returned. This
|
||||
* allows a URI representing a standalone fragment reference, such as
|
||||
* <tt>"#foo"</tt>, to be usefully resolved against a base URI.
|
||||
* {@code "#foo"}, to be usefully resolved against a base URI.
|
||||
*
|
||||
* <p> Otherwise this method constructs a new hierarchical URI in a manner
|
||||
* consistent with <a
|
||||
@ -993,7 +986,7 @@ public final class URI
|
||||
* <li><p> Otherwise the new URI's authority component is copied from
|
||||
* this URI, and its path is computed as follows: </p>
|
||||
*
|
||||
* <ol type=a>
|
||||
* <ol>
|
||||
*
|
||||
* <li><p> If the given URI's path is absolute then the new URI's path
|
||||
* is taken from the given URI. </p></li>
|
||||
@ -1016,7 +1009,7 @@ public final class URI
|
||||
* @return The resulting URI
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>uri</tt> is <tt>null</tt>
|
||||
* If {@code uri} is {@code null}
|
||||
*/
|
||||
public URI resolve(URI uri) {
|
||||
return resolve(this, uri);
|
||||
@ -1027,14 +1020,14 @@ public final class URI
|
||||
* against this URI.
|
||||
*
|
||||
* <p> This convenience method works as if invoking it were equivalent to
|
||||
* evaluating the expression <tt>{@link #resolve(java.net.URI)
|
||||
* resolve}(URI.{@link #create(String) create}(str))</tt>. </p>
|
||||
* evaluating the expression {@link #resolve(java.net.URI)
|
||||
* resolve}{@code (URI.}{@link #create(String) create}{@code (str))}. </p>
|
||||
*
|
||||
* @param str The string to be parsed into a URI
|
||||
* @return The resulting URI
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>str</tt> is <tt>null</tt>
|
||||
* If {@code str} is {@code null}
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* If the given string violates RFC 2396
|
||||
@ -1067,7 +1060,7 @@ public final class URI
|
||||
* @return The resulting URI
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If <tt>uri</tt> is <tt>null</tt>
|
||||
* If {@code uri} is {@code null}
|
||||
*/
|
||||
public URI relativize(URI uri) {
|
||||
return relativize(this, uri);
|
||||
@ -1077,7 +1070,7 @@ public final class URI
|
||||
* Constructs a URL from this URI.
|
||||
*
|
||||
* <p> This convenience method works as if invoking it were equivalent to
|
||||
* evaluating the expression <tt>new URL(this.toString())</tt> after
|
||||
* evaluating the expression {@code new URL(this.toString())} after
|
||||
* first checking that this URI is absolute. </p>
|
||||
*
|
||||
* @return A URL constructed from this URI
|
||||
@ -1102,14 +1095,14 @@ public final class URI
|
||||
* Returns the scheme component of this URI.
|
||||
*
|
||||
* <p> The scheme component of a URI, if defined, only contains characters
|
||||
* in the <i>alphanum</i> category and in the string <tt>"-.+"</tt>. A
|
||||
* in the <i>alphanum</i> category and in the string {@code "-.+"}. A
|
||||
* scheme always starts with an <i>alpha</i> character. <p>
|
||||
*
|
||||
* The scheme component of a URI cannot contain escaped octets, hence this
|
||||
* method does not perform any decoding.
|
||||
*
|
||||
* @return The scheme component of this URI,
|
||||
* or <tt>null</tt> if the scheme is undefined
|
||||
* or {@code null} if the scheme is undefined
|
||||
*/
|
||||
public String getScheme() {
|
||||
return scheme;
|
||||
@ -1120,7 +1113,7 @@ public final class URI
|
||||
*
|
||||
* <p> A URI is absolute if, and only if, it has a scheme component. </p>
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this URI is absolute
|
||||
* @return {@code true} if, and only if, this URI is absolute
|
||||
*/
|
||||
public boolean isAbsolute() {
|
||||
return scheme != null;
|
||||
@ -1134,7 +1127,7 @@ public final class URI
|
||||
* An opaque URI has a scheme, a scheme-specific part, and possibly
|
||||
* a fragment; all other components are undefined. </p>
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, this URI is opaque
|
||||
* @return {@code true} if, and only if, this URI is opaque
|
||||
*/
|
||||
public boolean isOpaque() {
|
||||
return path == null;
|
||||
@ -1148,7 +1141,7 @@ public final class URI
|
||||
* characters. </p>
|
||||
*
|
||||
* @return The raw scheme-specific part of this URI
|
||||
* (never <tt>null</tt>)
|
||||
* (never {@code null})
|
||||
*/
|
||||
public String getRawSchemeSpecificPart() {
|
||||
defineSchemeSpecificPart();
|
||||
@ -1164,7 +1157,7 @@ public final class URI
|
||||
* href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded scheme-specific part of this URI
|
||||
* (never <tt>null</tt>)
|
||||
* (never {@code null})
|
||||
*/
|
||||
public String getSchemeSpecificPart() {
|
||||
if (decodedSchemeSpecificPart == null)
|
||||
@ -1176,14 +1169,14 @@ public final class URI
|
||||
* Returns the raw authority component of this URI.
|
||||
*
|
||||
* <p> The authority component of a URI, if defined, only contains the
|
||||
* commercial-at character (<tt>'@'</tt>) and characters in the
|
||||
* commercial-at character ({@code '@'}) and characters in the
|
||||
* <i>unreserved</i>, <i>punct</i>, <i>escaped</i>, and <i>other</i>
|
||||
* categories. If the authority is server-based then it is further
|
||||
* constrained to have valid user-information, host, and port
|
||||
* components. </p>
|
||||
*
|
||||
* @return The raw authority component of this URI,
|
||||
* or <tt>null</tt> if the authority is undefined
|
||||
* or {@code null} if the authority is undefined
|
||||
*/
|
||||
public String getRawAuthority() {
|
||||
return authority;
|
||||
@ -1197,7 +1190,7 @@ public final class URI
|
||||
* sequences of escaped octets are <a href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded authority component of this URI,
|
||||
* or <tt>null</tt> if the authority is undefined
|
||||
* or {@code null} if the authority is undefined
|
||||
*/
|
||||
public String getAuthority() {
|
||||
if (decodedAuthority == null)
|
||||
@ -1213,7 +1206,7 @@ public final class URI
|
||||
* <i>other</i> categories. </p>
|
||||
*
|
||||
* @return The raw user-information component of this URI,
|
||||
* or <tt>null</tt> if the user information is undefined
|
||||
* or {@code null} if the user information is undefined
|
||||
*/
|
||||
public String getRawUserInfo() {
|
||||
return userInfo;
|
||||
@ -1227,7 +1220,7 @@ public final class URI
|
||||
* sequences of escaped octets are <a href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded user-information component of this URI,
|
||||
* or <tt>null</tt> if the user information is undefined
|
||||
* or {@code null} if the user information is undefined
|
||||
*/
|
||||
public String getUserInfo() {
|
||||
if ((decodedUserInfo == null) && (userInfo != null))
|
||||
@ -1241,24 +1234,24 @@ public final class URI
|
||||
* <p> The host component of a URI, if defined, will have one of the
|
||||
* following forms: </p>
|
||||
*
|
||||
* <ul type=disc>
|
||||
* <ul>
|
||||
*
|
||||
* <li><p> A domain name consisting of one or more <i>labels</i>
|
||||
* separated by period characters (<tt>'.'</tt>), optionally followed by
|
||||
* separated by period characters ({@code '.'}), optionally followed by
|
||||
* a period character. Each label consists of <i>alphanum</i> characters
|
||||
* as well as hyphen characters (<tt>'-'</tt>), though hyphens never
|
||||
* as well as hyphen characters ({@code '-'}), though hyphens never
|
||||
* occur as the first or last characters in a label. The rightmost
|
||||
* label of a domain name consisting of two or more labels, begins
|
||||
* with an <i>alpha</i> character. </li>
|
||||
*
|
||||
* <li><p> A dotted-quad IPv4 address of the form
|
||||
* <i>digit</i><tt>+.</tt><i>digit</i><tt>+.</tt><i>digit</i><tt>+.</tt><i>digit</i><tt>+</tt>,
|
||||
* <i>digit</i>{@code +.}<i>digit</i>{@code +.}<i>digit</i>{@code +.}<i>digit</i>{@code +},
|
||||
* where no <i>digit</i> sequence is longer than three characters and no
|
||||
* sequence has a value larger than 255. </p></li>
|
||||
*
|
||||
* <li><p> An IPv6 address enclosed in square brackets (<tt>'['</tt> and
|
||||
* <tt>']'</tt>) and consisting of hexadecimal digits, colon characters
|
||||
* (<tt>':'</tt>), and possibly an embedded IPv4 address. The full
|
||||
* <li><p> An IPv6 address enclosed in square brackets ({@code '['} and
|
||||
* {@code ']'}) and consisting of hexadecimal digits, colon characters
|
||||
* ({@code ':'}), and possibly an embedded IPv4 address. The full
|
||||
* syntax of IPv6 addresses is specified in <a
|
||||
* href="http://www.ietf.org/rfc/rfc2373.txt"><i>RFC 2373: IPv6
|
||||
* Addressing Architecture</i></a>. </p></li>
|
||||
@ -1269,7 +1262,7 @@ public final class URI
|
||||
* method does not perform any decoding.
|
||||
*
|
||||
* @return The host component of this URI,
|
||||
* or <tt>null</tt> if the host is undefined
|
||||
* or {@code null} if the host is undefined
|
||||
*/
|
||||
public String getHost() {
|
||||
return host;
|
||||
@ -1282,7 +1275,7 @@ public final class URI
|
||||
* integer. </p>
|
||||
*
|
||||
* @return The port component of this URI,
|
||||
* or <tt>-1</tt> if the port is undefined
|
||||
* or {@code -1} if the port is undefined
|
||||
*/
|
||||
public int getPort() {
|
||||
return port;
|
||||
@ -1292,12 +1285,12 @@ public final class URI
|
||||
* Returns the raw path component of this URI.
|
||||
*
|
||||
* <p> The path component of a URI, if defined, only contains the slash
|
||||
* character (<tt>'/'</tt>), the commercial-at character (<tt>'@'</tt>),
|
||||
* character ({@code '/'}), the commercial-at character ({@code '@'}),
|
||||
* and characters in the <i>unreserved</i>, <i>punct</i>, <i>escaped</i>,
|
||||
* and <i>other</i> categories. </p>
|
||||
*
|
||||
* @return The path component of this URI,
|
||||
* or <tt>null</tt> if the path is undefined
|
||||
* or {@code null} if the path is undefined
|
||||
*/
|
||||
public String getRawPath() {
|
||||
return path;
|
||||
@ -1311,7 +1304,7 @@ public final class URI
|
||||
* escaped octets are <a href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded path component of this URI,
|
||||
* or <tt>null</tt> if the path is undefined
|
||||
* or {@code null} if the path is undefined
|
||||
*/
|
||||
public String getPath() {
|
||||
if ((decodedPath == null) && (path != null))
|
||||
@ -1326,7 +1319,7 @@ public final class URI
|
||||
* characters. </p>
|
||||
*
|
||||
* @return The raw query component of this URI,
|
||||
* or <tt>null</tt> if the query is undefined
|
||||
* or {@code null} if the query is undefined
|
||||
*/
|
||||
public String getRawQuery() {
|
||||
return query;
|
||||
@ -1340,7 +1333,7 @@ public final class URI
|
||||
* escaped octets are <a href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded query component of this URI,
|
||||
* or <tt>null</tt> if the query is undefined
|
||||
* or {@code null} if the query is undefined
|
||||
*/
|
||||
public String getQuery() {
|
||||
if ((decodedQuery == null) && (query != null))
|
||||
@ -1355,7 +1348,7 @@ public final class URI
|
||||
* characters. </p>
|
||||
*
|
||||
* @return The raw fragment component of this URI,
|
||||
* or <tt>null</tt> if the fragment is undefined
|
||||
* or {@code null} if the fragment is undefined
|
||||
*/
|
||||
public String getRawFragment() {
|
||||
return fragment;
|
||||
@ -1369,7 +1362,7 @@ public final class URI
|
||||
* sequences of escaped octets are <a href="#decode">decoded</a>. </p>
|
||||
*
|
||||
* @return The decoded fragment component of this URI,
|
||||
* or <tt>null</tt> if the fragment is undefined
|
||||
* or {@code null} if the fragment is undefined
|
||||
*/
|
||||
public String getFragment() {
|
||||
if ((decodedFragment == null) && (fragment != null))
|
||||
@ -1384,7 +1377,7 @@ public final class URI
|
||||
* Tests this URI for equality with another object.
|
||||
*
|
||||
* <p> If the given object is not a URI then this method immediately
|
||||
* returns <tt>false</tt>.
|
||||
* returns {@code false}.
|
||||
*
|
||||
* <p> For two URIs to be considered equal requires that either both are
|
||||
* opaque or both are hierarchical. Their schemes must either both be
|
||||
@ -1414,7 +1407,7 @@ public final class URI
|
||||
*
|
||||
* @param ob The object to which this object is to be compared
|
||||
*
|
||||
* @return <tt>true</tt> if, and only if, the given object is a URI that
|
||||
* @return {@code true} if, and only if, the given object is a URI that
|
||||
* is identical to this URI
|
||||
*/
|
||||
public boolean equals(Object ob) {
|
||||
@ -1495,7 +1488,7 @@ public final class URI
|
||||
*
|
||||
* <p> The ordering of URIs is defined as follows: </p>
|
||||
*
|
||||
* <ul type=disc>
|
||||
* <ul>
|
||||
*
|
||||
* <li><p> Two URIs with different schemes are ordered according the
|
||||
* ordering of their schemes, without regard to case. </p></li>
|
||||
@ -1513,7 +1506,7 @@ public final class URI
|
||||
* <li><p> Two hierarchical URIs with identical schemes are ordered
|
||||
* according to the ordering of their authority components: </p>
|
||||
*
|
||||
* <ul type=disc>
|
||||
* <ul>
|
||||
*
|
||||
* <li><p> If both authority components are server-based then the URIs
|
||||
* are ordered according to their user-information components; if these
|
||||
@ -1635,7 +1628,7 @@ public final class URI
|
||||
/**
|
||||
* Saves the content of this URI to the given serial stream.
|
||||
*
|
||||
* <p> The only serializable field of a URI instance is its <tt>string</tt>
|
||||
* <p> The only serializable field of a URI instance is its {@code string}
|
||||
* field. That field is given a value, if it does not have one already,
|
||||
* and then the {@link java.io.ObjectOutputStream#defaultWriteObject()}
|
||||
* method of the given object-output stream is invoked. </p>
|
||||
@ -1654,7 +1647,7 @@ public final class URI
|
||||
* Reconstitutes a URI from the given serial stream.
|
||||
*
|
||||
* <p> The {@link java.io.ObjectInputStream#defaultReadObject()} method is
|
||||
* invoked to read the value of the <tt>string</tt> field. The result is
|
||||
* invoked to read the value of the {@code string} field. The result is
|
||||
* then parsed in the usual way.
|
||||
*
|
||||
* @param is The object-input stream from which this object
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,13 +50,13 @@ public class URISyntaxException
|
||||
* @param input The input string
|
||||
* @param reason A string explaining why the input could not be parsed
|
||||
* @param index The index at which the parse error occurred,
|
||||
* or <tt>-1</tt> if the index is not known
|
||||
* or {@code -1} if the index is not known
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If either the input or reason strings are <tt>null</tt>
|
||||
* If either the input or reason strings are {@code null}
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* If the error index is less than <tt>-1</tt>
|
||||
* If the error index is less than {@code -1}
|
||||
*/
|
||||
public URISyntaxException(String input, String reason, int index) {
|
||||
super(reason);
|
||||
@ -70,13 +70,13 @@ public class URISyntaxException
|
||||
|
||||
/**
|
||||
* Constructs an instance from the given input string and reason. The
|
||||
* resulting object will have an error index of <tt>-1</tt>.
|
||||
* resulting object will have an error index of {@code -1}.
|
||||
*
|
||||
* @param input The input string
|
||||
* @param reason A string explaining why the input could not be parsed
|
||||
*
|
||||
* @throws NullPointerException
|
||||
* If either the input or reason strings are <tt>null</tt>
|
||||
* If either the input or reason strings are {@code null}
|
||||
*/
|
||||
public URISyntaxException(String input, String reason) {
|
||||
this(input, reason, -1);
|
||||
@ -102,7 +102,7 @@ public class URISyntaxException
|
||||
|
||||
/**
|
||||
* Returns an index into the input string of the position at which the
|
||||
* parse error occurred, or <tt>-1</tt> if this position is not known.
|
||||
* parse error occurred, or {@code -1} if this position is not known.
|
||||
*
|
||||
* @return The error index
|
||||
*/
|
||||
@ -113,8 +113,8 @@ public class URISyntaxException
|
||||
/**
|
||||
* Returns a string describing the parse error. The resulting string
|
||||
* consists of the reason string followed by a colon character
|
||||
* (<tt>':'</tt>), a space, and the input string. If the error index is
|
||||
* defined then the string <tt>" at index "</tt> followed by the index, in
|
||||
* ({@code ':'}), a space, and the input string. If the error index is
|
||||
* defined then the string {@code " at index "} followed by the index, in
|
||||
* decimal, is inserted after the reason string and before the colon
|
||||
* character.
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -32,7 +32,7 @@ import java.util.StringTokenizer;
|
||||
import sun.security.util.SecurityConstants;
|
||||
|
||||
/**
|
||||
* Class <code>URL</code> represents a Uniform Resource
|
||||
* Class {@code URL} represents a Uniform Resource
|
||||
* Locator, a pointer to a "resource" on the World
|
||||
* Wide Web. A resource can be something as simple as a file or a
|
||||
* directory, or it can be a reference to a more complicated object,
|
||||
@ -49,10 +49,10 @@ import sun.security.util.SecurityConstants;
|
||||
* </pre></blockquote>
|
||||
* <p>
|
||||
* The URL above indicates that the protocol to use is
|
||||
* <code>http</code> (HyperText Transfer Protocol) and that the
|
||||
* {@code http} (HyperText Transfer Protocol) and that the
|
||||
* information resides on a host machine named
|
||||
* <code>www.example.com</code>. The information on that host
|
||||
* machine is named <code>/docs/resource1.html</code>. The exact
|
||||
* {@code www.example.com}. The information on that host
|
||||
* machine is named {@code /docs/resource1.html}. The exact
|
||||
* meaning of this name on the host machine is both protocol
|
||||
* dependent and host dependent. The information normally resides in
|
||||
* a file, but it could be generated on the fly. This component of
|
||||
@ -62,13 +62,13 @@ import sun.security.util.SecurityConstants;
|
||||
* port number to which the TCP connection is made on the remote host
|
||||
* machine. If the port is not specified, the default port for
|
||||
* the protocol is used instead. For example, the default port for
|
||||
* <code>http</code> is <code>80</code>. An alternative port could be
|
||||
* {@code http} is {@code 80}. An alternative port could be
|
||||
* specified as:
|
||||
* <blockquote><pre>
|
||||
* http://www.example.com:1080/docs/resource1.html
|
||||
* </pre></blockquote>
|
||||
* <p>
|
||||
* The syntax of <code>URL</code> is defined by <a
|
||||
* The syntax of {@code URL} is defined by <a
|
||||
* href="http://www.ietf.org/rfc/rfc2396.txt"><i>RFC 2396: Uniform
|
||||
* Resource Identifiers (URI): Generic Syntax</i></a>, amended by <a
|
||||
* href="http://www.ietf.org/rfc/rfc2732.txt"><i>RFC 2732: Format for
|
||||
@ -86,7 +86,7 @@ import sun.security.util.SecurityConstants;
|
||||
* This fragment is not technically part of the URL. Rather, it
|
||||
* indicates that after the specified resource is retrieved, the
|
||||
* application is specifically interested in that part of the
|
||||
* document that has the tag <code>chapter1</code> attached to it. The
|
||||
* document that has the tag {@code chapter1} attached to it. The
|
||||
* meaning of a tag is resource specific.
|
||||
* <p>
|
||||
* An application can also specify a "relative URL",
|
||||
@ -170,8 +170,8 @@ public final class URL implements java.io.Serializable {
|
||||
private int port = -1;
|
||||
|
||||
/**
|
||||
* The specified file name on that host. <code>file</code> is
|
||||
* defined as <code>path[?query]</code>
|
||||
* The specified file name on that host. {@code file} is
|
||||
* defined as {@code path[?query]}
|
||||
* @serial
|
||||
*/
|
||||
private String file;
|
||||
@ -220,42 +220,42 @@ public final class URL implements java.io.Serializable {
|
||||
private int hashCode = -1;
|
||||
|
||||
/**
|
||||
* Creates a <code>URL</code> object from the specified
|
||||
* <code>protocol</code>, <code>host</code>, <code>port</code>
|
||||
* number, and <code>file</code>.<p>
|
||||
* Creates a {@code URL} object from the specified
|
||||
* {@code protocol}, {@code host}, {@code port}
|
||||
* number, and {@code file}.<p>
|
||||
*
|
||||
* <code>host</code> can be expressed as a host name or a literal
|
||||
* {@code host} can be expressed as a host name or a literal
|
||||
* IP address. If IPv6 literal address is used, it should be
|
||||
* enclosed in square brackets (<tt>'['</tt> and <tt>']'</tt>), as
|
||||
* enclosed in square brackets ({@code '['} and {@code ']'}), as
|
||||
* specified by <a
|
||||
* href="http://www.ietf.org/rfc/rfc2732.txt">RFC 2732</a>;
|
||||
* However, the literal IPv6 address format defined in <a
|
||||
* href="http://www.ietf.org/rfc/rfc2373.txt"><i>RFC 2373: IP
|
||||
* Version 6 Addressing Architecture</i></a> is also accepted.<p>
|
||||
*
|
||||
* Specifying a <code>port</code> number of <code>-1</code>
|
||||
* Specifying a {@code port} number of {@code -1}
|
||||
* indicates that the URL should use the default port for the
|
||||
* protocol.<p>
|
||||
*
|
||||
* If this is the first URL object being created with the specified
|
||||
* protocol, a <i>stream protocol handler</i> object, an instance of
|
||||
* class <code>URLStreamHandler</code>, is created for that protocol:
|
||||
* class {@code URLStreamHandler}, is created for that protocol:
|
||||
* <ol>
|
||||
* <li>If the application has previously set up an instance of
|
||||
* <code>URLStreamHandlerFactory</code> as the stream handler factory,
|
||||
* then the <code>createURLStreamHandler</code> method of that instance
|
||||
* {@code URLStreamHandlerFactory} as the stream handler factory,
|
||||
* then the {@code createURLStreamHandler} method of that instance
|
||||
* is called with the protocol string as an argument to create the
|
||||
* stream protocol handler.
|
||||
* <li>If no <code>URLStreamHandlerFactory</code> has yet been set up,
|
||||
* or if the factory's <code>createURLStreamHandler</code> method
|
||||
* returns <code>null</code>, then the constructor finds the
|
||||
* <li>If no {@code URLStreamHandlerFactory} has yet been set up,
|
||||
* or if the factory's {@code createURLStreamHandler} method
|
||||
* returns {@code null}, then the constructor finds the
|
||||
* value of the system property:
|
||||
* <blockquote><pre>
|
||||
* java.protocol.handler.pkgs
|
||||
* </pre></blockquote>
|
||||
* If the value of that system property is not <code>null</code>,
|
||||
* If the value of that system property is not {@code null},
|
||||
* it is interpreted as a list of packages separated by a vertical
|
||||
* slash character '<code>|</code>'. The constructor tries to load
|
||||
* slash character '{@code |}'. The constructor tries to load
|
||||
* the class named:
|
||||
* <blockquote><pre>
|
||||
* <<i>package</i>>.<<i>protocol</i>>.Handler
|
||||
@ -263,7 +263,7 @@ public final class URL implements java.io.Serializable {
|
||||
* where <<i>package</i>> is replaced by the name of the package
|
||||
* and <<i>protocol</i>> is replaced by the name of the protocol.
|
||||
* If this class does not exist, or if the class exists but it is not
|
||||
* a subclass of <code>URLStreamHandler</code>, then the next package
|
||||
* a subclass of {@code URLStreamHandler}, then the next package
|
||||
* in the list is tried.
|
||||
* <li>If the previous step fails to find a protocol handler, then the
|
||||
* constructor tries to load from a system default package.
|
||||
@ -271,8 +271,8 @@ public final class URL implements java.io.Serializable {
|
||||
* <<i>system default package</i>>.<<i>protocol</i>>.Handler
|
||||
* </pre></blockquote>
|
||||
* If this class does not exist, or if the class exists but it is not a
|
||||
* subclass of <code>URLStreamHandler</code>, then a
|
||||
* <code>MalformedURLException</code> is thrown.
|
||||
* subclass of {@code URLStreamHandler}, then a
|
||||
* {@code MalformedURLException} is thrown.
|
||||
* </ol>
|
||||
*
|
||||
* <p>Protocol handlers for the following protocols are guaranteed
|
||||
@ -304,13 +304,13 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a URL from the specified <code>protocol</code>
|
||||
* name, <code>host</code> name, and <code>file</code> name. The
|
||||
* Creates a URL from the specified {@code protocol}
|
||||
* name, {@code host} name, and {@code file} name. The
|
||||
* default port for the specified protocol is used.
|
||||
* <p>
|
||||
* This method is equivalent to calling the four-argument
|
||||
* constructor with the arguments being <code>protocol</code>,
|
||||
* <code>host</code>, <code>-1</code>, and <code>file</code>.
|
||||
* constructor with the arguments being {@code protocol},
|
||||
* {@code host}, {@code -1}, and {@code file}.
|
||||
*
|
||||
* No validation of the inputs is performed by this constructor.
|
||||
*
|
||||
@ -327,21 +327,21 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>URL</code> object from the specified
|
||||
* <code>protocol</code>, <code>host</code>, <code>port</code>
|
||||
* number, <code>file</code>, and <code>handler</code>. Specifying
|
||||
* a <code>port</code> number of <code>-1</code> indicates that
|
||||
* Creates a {@code URL} object from the specified
|
||||
* {@code protocol}, {@code host}, {@code port}
|
||||
* number, {@code file}, and {@code handler}. Specifying
|
||||
* a {@code port} number of {@code -1} indicates that
|
||||
* the URL should use the default port for the protocol. Specifying
|
||||
* a <code>handler</code> of <code>null</code> indicates that the URL
|
||||
* a {@code handler} of {@code null} indicates that the URL
|
||||
* should use a default stream handler for the protocol, as outlined
|
||||
* for:
|
||||
* java.net.URL#URL(java.lang.String, java.lang.String, int,
|
||||
* java.lang.String)
|
||||
*
|
||||
* <p>If the handler is not null and there is a security manager,
|
||||
* the security manager's <code>checkPermission</code>
|
||||
* the security manager's {@code checkPermission}
|
||||
* method is called with a
|
||||
* <code>NetPermission("specifyStreamHandler")</code> permission.
|
||||
* {@code NetPermission("specifyStreamHandler")} permission.
|
||||
* This may result in a SecurityException.
|
||||
*
|
||||
* No validation of the inputs is performed by this constructor.
|
||||
@ -354,7 +354,7 @@ public final class URL implements java.io.Serializable {
|
||||
* @exception MalformedURLException if an unknown protocol is specified.
|
||||
* @exception SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* specifying a stream handler explicitly.
|
||||
* @see java.lang.System#getProperty(java.lang.String)
|
||||
* @see java.net.URL#setURLStreamHandlerFactory(
|
||||
@ -417,15 +417,15 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a <code>URL</code> object from the <code>String</code>
|
||||
* Creates a {@code URL} object from the {@code String}
|
||||
* representation.
|
||||
* <p>
|
||||
* This constructor is equivalent to a call to the two-argument
|
||||
* constructor with a <code>null</code> first argument.
|
||||
* constructor with a {@code null} first argument.
|
||||
*
|
||||
* @param spec the <code>String</code> to parse as a URL.
|
||||
* @param spec the {@code String} to parse as a URL.
|
||||
* @exception MalformedURLException if no protocol is specified, or an
|
||||
* unknown protocol is found, or <tt>spec</tt> is <tt>null</tt>.
|
||||
* unknown protocol is found, or {@code spec} is {@code null}.
|
||||
* @see java.net.URL#URL(java.net.URL, java.lang.String)
|
||||
*/
|
||||
public URL(String spec) throws MalformedURLException {
|
||||
@ -470,9 +470,9 @@ public final class URL implements java.io.Serializable {
|
||||
* For a more detailed description of URL parsing, refer to RFC2396.
|
||||
*
|
||||
* @param context the context in which to parse the specification.
|
||||
* @param spec the <code>String</code> to parse as a URL.
|
||||
* @param spec the {@code String} to parse as a URL.
|
||||
* @exception MalformedURLException if no protocol is specified, or an
|
||||
* unknown protocol is found, or <tt>spec</tt> is <tt>null</tt>.
|
||||
* unknown protocol is found, or {@code spec} is {@code null}.
|
||||
* @see java.net.URL#URL(java.lang.String, java.lang.String,
|
||||
* int, java.lang.String)
|
||||
* @see java.net.URLStreamHandler
|
||||
@ -489,13 +489,13 @@ public final class URL implements java.io.Serializable {
|
||||
* occurs as with the two argument constructor.
|
||||
*
|
||||
* @param context the context in which to parse the specification.
|
||||
* @param spec the <code>String</code> to parse as a URL.
|
||||
* @param spec the {@code String} to parse as a URL.
|
||||
* @param handler the stream handler for the URL.
|
||||
* @exception MalformedURLException if no protocol is specified, or an
|
||||
* unknown protocol is found, or <tt>spec</tt> is <tt>null</tt>.
|
||||
* unknown protocol is found, or {@code spec} is {@code null}.
|
||||
* @exception SecurityException
|
||||
* if a security manager exists and its
|
||||
* <code>checkPermission</code> method doesn't allow
|
||||
* {@code checkPermission} method doesn't allow
|
||||
* specifying a stream handler.
|
||||
* @see java.net.URL#URL(java.lang.String, java.lang.String,
|
||||
* int, java.lang.String)
|
||||
@ -719,9 +719,9 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the query part of this <code>URL</code>.
|
||||
* Gets the query part of this {@code URL}.
|
||||
*
|
||||
* @return the query part of this <code>URL</code>,
|
||||
* @return the query part of this {@code URL},
|
||||
* or <CODE>null</CODE> if one does not exist
|
||||
* @since 1.3
|
||||
*/
|
||||
@ -730,9 +730,9 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the path part of this <code>URL</code>.
|
||||
* Gets the path part of this {@code URL}.
|
||||
*
|
||||
* @return the path part of this <code>URL</code>, or an
|
||||
* @return the path part of this {@code URL}, or an
|
||||
* empty string if one does not exist
|
||||
* @since 1.3
|
||||
*/
|
||||
@ -741,9 +741,9 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the userInfo part of this <code>URL</code>.
|
||||
* Gets the userInfo part of this {@code URL}.
|
||||
*
|
||||
* @return the userInfo part of this <code>URL</code>, or
|
||||
* @return the userInfo part of this {@code URL}, or
|
||||
* <CODE>null</CODE> if one does not exist
|
||||
* @since 1.3
|
||||
*/
|
||||
@ -752,9 +752,9 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the authority part of this <code>URL</code>.
|
||||
* Gets the authority part of this {@code URL}.
|
||||
*
|
||||
* @return the authority part of this <code>URL</code>
|
||||
* @return the authority part of this {@code URL}
|
||||
* @since 1.3
|
||||
*/
|
||||
public String getAuthority() {
|
||||
@ -762,7 +762,7 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the port number of this <code>URL</code>.
|
||||
* Gets the port number of this {@code URL}.
|
||||
*
|
||||
* @return the port number, or -1 if the port is not set
|
||||
*/
|
||||
@ -772,7 +772,7 @@ public final class URL implements java.io.Serializable {
|
||||
|
||||
/**
|
||||
* Gets the default port number of the protocol associated
|
||||
* with this <code>URL</code>. If the URL scheme or the URLStreamHandler
|
||||
* with this {@code URL}. If the URL scheme or the URLStreamHandler
|
||||
* for the URL do not define a default port number,
|
||||
* then -1 is returned.
|
||||
*
|
||||
@ -784,35 +784,35 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the protocol name of this <code>URL</code>.
|
||||
* Gets the protocol name of this {@code URL}.
|
||||
*
|
||||
* @return the protocol of this <code>URL</code>.
|
||||
* @return the protocol of this {@code URL}.
|
||||
*/
|
||||
public String getProtocol() {
|
||||
return protocol;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the host name of this <code>URL</code>, if applicable.
|
||||
* Gets the host name of this {@code URL}, if applicable.
|
||||
* The format of the host conforms to RFC 2732, i.e. for a
|
||||
* literal IPv6 address, this method will return the IPv6 address
|
||||
* enclosed in square brackets (<tt>'['</tt> and <tt>']'</tt>).
|
||||
* enclosed in square brackets ({@code '['} and {@code ']'}).
|
||||
*
|
||||
* @return the host name of this <code>URL</code>.
|
||||
* @return the host name of this {@code URL}.
|
||||
*/
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the file name of this <code>URL</code>.
|
||||
* Gets the file name of this {@code URL}.
|
||||
* The returned file portion will be
|
||||
* the same as <CODE>getPath()</CODE>, plus the concatenation of
|
||||
* the value of <CODE>getQuery()</CODE>, if any. If there is
|
||||
* no query portion, this method and <CODE>getPath()</CODE> will
|
||||
* return identical results.
|
||||
*
|
||||
* @return the file name of this <code>URL</code>,
|
||||
* @return the file name of this {@code URL},
|
||||
* or an empty string if one does not exist
|
||||
*/
|
||||
public String getFile() {
|
||||
@ -821,10 +821,10 @@ public final class URL implements java.io.Serializable {
|
||||
|
||||
/**
|
||||
* Gets the anchor (also known as the "reference") of this
|
||||
* <code>URL</code>.
|
||||
* {@code URL}.
|
||||
*
|
||||
* @return the anchor (also known as the "reference") of this
|
||||
* <code>URL</code>, or <CODE>null</CODE> if one does not exist
|
||||
* {@code URL}, or <CODE>null</CODE> if one does not exist
|
||||
*/
|
||||
public String getRef() {
|
||||
return ref;
|
||||
@ -834,7 +834,7 @@ public final class URL implements java.io.Serializable {
|
||||
* Compares this URL for equality with another object.<p>
|
||||
*
|
||||
* If the given object is not a URL then this method immediately returns
|
||||
* <code>false</code>.<p>
|
||||
* {@code false}.<p>
|
||||
*
|
||||
* Two URL objects are equal if they have the same protocol, reference
|
||||
* equivalent hosts, have the same port number on the host, and the same
|
||||
@ -848,12 +848,12 @@ public final class URL implements java.io.Serializable {
|
||||
* Since hosts comparison requires name resolution, this operation is a
|
||||
* blocking operation. <p>
|
||||
*
|
||||
* Note: The defined behavior for <code>equals</code> is known to
|
||||
* Note: The defined behavior for {@code equals} is known to
|
||||
* be inconsistent with virtual hosting in HTTP.
|
||||
*
|
||||
* @param obj the URL to compare against.
|
||||
* @return <code>true</code> if the objects are the same;
|
||||
* <code>false</code> otherwise.
|
||||
* @return {@code true} if the objects are the same;
|
||||
* {@code false} otherwise.
|
||||
*/
|
||||
public boolean equals(Object obj) {
|
||||
if (!(obj instanceof URL))
|
||||
@ -869,7 +869,7 @@ public final class URL implements java.io.Serializable {
|
||||
* The hash code is based upon all the URL components relevant for URL
|
||||
* comparison. As such, this operation is a blocking operation.<p>
|
||||
*
|
||||
* @return a hash code for this <code>URL</code>.
|
||||
* @return a hash code for this {@code URL}.
|
||||
*/
|
||||
public synchronized int hashCode() {
|
||||
if (hashCode != -1)
|
||||
@ -882,21 +882,21 @@ public final class URL implements java.io.Serializable {
|
||||
/**
|
||||
* Compares two URLs, excluding the fragment component.<p>
|
||||
*
|
||||
* Returns <code>true</code> if this <code>URL</code> and the
|
||||
* <code>other</code> argument are equal without taking the
|
||||
* Returns {@code true} if this {@code URL} and the
|
||||
* {@code other} argument are equal without taking the
|
||||
* fragment component into consideration.
|
||||
*
|
||||
* @param other the <code>URL</code> to compare against.
|
||||
* @return <code>true</code> if they reference the same remote object;
|
||||
* <code>false</code> otherwise.
|
||||
* @param other the {@code URL} to compare against.
|
||||
* @return {@code true} if they reference the same remote object;
|
||||
* {@code false} otherwise.
|
||||
*/
|
||||
public boolean sameFile(URL other) {
|
||||
return handler.sameFile(this, other);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representation of this <code>URL</code>. The
|
||||
* string is created by calling the <code>toExternalForm</code>
|
||||
* Constructs a string representation of this {@code URL}. The
|
||||
* string is created by calling the {@code toExternalForm}
|
||||
* method of the stream protocol handler for this object.
|
||||
*
|
||||
* @return a string representation of this object.
|
||||
@ -909,8 +909,8 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a string representation of this <code>URL</code>. The
|
||||
* string is created by calling the <code>toExternalForm</code>
|
||||
* Constructs a string representation of this {@code URL}. The
|
||||
* string is created by calling the {@code toExternalForm}
|
||||
* method of the stream protocol handler for this object.
|
||||
*
|
||||
* @return a string representation of this object.
|
||||
@ -924,7 +924,7 @@ public final class URL implements java.io.Serializable {
|
||||
|
||||
/**
|
||||
* Returns a {@link java.net.URI} equivalent to this URL.
|
||||
* This method functions in the same way as <code>new URI (this.toString())</code>.
|
||||
* This method functions in the same way as {@code new URI (this.toString())}.
|
||||
* <p>Note, any URL instance that complies with RFC 2396 can be converted
|
||||
* to a URI. However, some URLs that are not strictly in compliance
|
||||
* can not be converted to a URI.
|
||||
@ -984,7 +984,7 @@ public final class URL implements java.io.Serializable {
|
||||
* @param proxy the Proxy through which this connection
|
||||
* will be made. If direct connection is desired,
|
||||
* Proxy.NO_PROXY should be specified.
|
||||
* @return a <code>URLConnection</code> to the URL.
|
||||
* @return a {@code URLConnection} to the URL.
|
||||
* @exception IOException if an I/O exception occurs.
|
||||
* @exception SecurityException if a security manager is present
|
||||
* and the caller doesn't have permission to connect
|
||||
@ -1022,8 +1022,8 @@ public final class URL implements java.io.Serializable {
|
||||
}
|
||||
|
||||
/**
|
||||
* Opens a connection to this <code>URL</code> and returns an
|
||||
* <code>InputStream</code> for reading from that connection. This
|
||||
* Opens a connection to this {@code URL} and returns an
|
||||
* {@code InputStream} for reading from that connection. This
|
||||
* method is a shorthand for:
|
||||
* <blockquote><pre>
|
||||
* openConnection().getInputStream()
|
||||
@ -1077,22 +1077,22 @@ public final class URL implements java.io.Serializable {
|
||||
static URLStreamHandlerFactory factory;
|
||||
|
||||
/**
|
||||
* Sets an application's <code>URLStreamHandlerFactory</code>.
|
||||
* Sets an application's {@code URLStreamHandlerFactory}.
|
||||
* This method can be called at most once in a given Java Virtual
|
||||
* Machine.
|
||||
*
|
||||
*<p> The <code>URLStreamHandlerFactory</code> instance is used to
|
||||
*<p> The {@code URLStreamHandlerFactory} instance is used to
|
||||
*construct a stream protocol handler from a protocol name.
|
||||
*
|
||||
* <p> If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @param fac the desired factory.
|
||||
* @exception Error if the application has already set a factory.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow
|
||||
* {@code checkSetFactory} method doesn't allow
|
||||
* the operation.
|
||||
* @see java.net.URL#URL(java.lang.String, java.lang.String,
|
||||
* int, java.lang.String)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -117,7 +117,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
|
||||
/**
|
||||
* Constructs a new URLClassLoader for the specified URLs using the
|
||||
* default delegation parent <code>ClassLoader</code>. The URLs will
|
||||
* default delegation parent {@code ClassLoader}. The URLs will
|
||||
* be searched in the order specified for classes and resources after
|
||||
* first searching in the parent class loader. Any URL that ends with
|
||||
* a '/' is assumed to refer to a directory. Otherwise, the URL is
|
||||
@ -125,13 +125,13 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* as needed.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls the security manager's <code>checkCreateClassLoader</code> method
|
||||
* calls the security manager's {@code checkCreateClassLoader} method
|
||||
* to ensure creation of a class loader is allowed.
|
||||
*
|
||||
* @param urls the URLs from which to load classes and resources
|
||||
*
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkCreateClassLoader</code> method doesn't allow
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
* creation of a class loader.
|
||||
* @see SecurityManager#checkCreateClassLoader
|
||||
*/
|
||||
@ -165,7 +165,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* obtain protocol handlers when creating new jar URLs.
|
||||
*
|
||||
* <p>If there is a security manager, this method first
|
||||
* calls the security manager's <code>checkCreateClassLoader</code> method
|
||||
* calls the security manager's {@code checkCreateClassLoader} method
|
||||
* to ensure creation of a class loader is allowed.
|
||||
*
|
||||
* @param urls the URLs from which to load classes and resources
|
||||
@ -173,7 +173,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @param factory the URLStreamHandlerFactory to use when creating URLs
|
||||
*
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkCreateClassLoader</code> method doesn't allow
|
||||
* {@code checkCreateClassLoader} method doesn't allow
|
||||
* creation of a class loader.
|
||||
* @see SecurityManager#checkCreateClassLoader
|
||||
*/
|
||||
@ -217,7 +217,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* @param name
|
||||
* The resource name
|
||||
*
|
||||
* @return An input stream for reading the resource, or <tt>null</tt>
|
||||
* @return An input stream for reading the resource, or {@code null}
|
||||
* if the resource could not be found
|
||||
*
|
||||
* @since 1.7
|
||||
@ -273,7 +273,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* as suppressed exceptions of the first one caught, which is then re-thrown.
|
||||
*
|
||||
* @throws SecurityException if a security manager is set, and it denies
|
||||
* {@link RuntimePermission}<tt>("closeClassLoader")</tt>
|
||||
* {@link RuntimePermission}{@code ("closeClassLoader")}
|
||||
*
|
||||
* @since 1.7
|
||||
*/
|
||||
@ -316,7 +316,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* Appends the specified URL to the list of URLs to search for
|
||||
* classes and resources.
|
||||
* <p>
|
||||
* If the URL specified is <code>null</code> or is already in the
|
||||
* If the URL specified is {@code null} or is already in the
|
||||
* list of URLs, or if this loader is closed, then invoking this
|
||||
* method has no effect.
|
||||
*
|
||||
@ -537,7 +537,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
* Finds the resource with the specified name on the URL search path.
|
||||
*
|
||||
* @param name the name of the resource
|
||||
* @return a <code>URL</code> for the resource, or <code>null</code>
|
||||
* @return a {@code URL} for the resource, or {@code null}
|
||||
* if the resource could not be found, or if the loader is closed.
|
||||
*/
|
||||
public URL findResource(final String name) {
|
||||
@ -560,7 +560,7 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
*
|
||||
* @param name the resource name
|
||||
* @exception IOException if an I/O exception occurs
|
||||
* @return an <code>Enumeration</code> of <code>URL</code>s
|
||||
* @return an {@code Enumeration} of {@code URL}s
|
||||
* If the loader is closed, the Enumeration will be empty.
|
||||
*/
|
||||
public Enumeration<URL> findResources(final String name)
|
||||
@ -699,9 +699,9 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
/**
|
||||
* Creates a new instance of URLClassLoader for the specified
|
||||
* URLs and parent class loader. If a security manager is
|
||||
* installed, the <code>loadClass</code> method of the URLClassLoader
|
||||
* installed, the {@code loadClass} method of the URLClassLoader
|
||||
* returned by this method will invoke the
|
||||
* <code>SecurityManager.checkPackageAccess</code> method before
|
||||
* {@code SecurityManager.checkPackageAccess} method before
|
||||
* loading the class.
|
||||
*
|
||||
* @param urls the URLs to search for classes and resources
|
||||
@ -725,9 +725,9 @@ public class URLClassLoader extends SecureClassLoader implements Closeable {
|
||||
/**
|
||||
* Creates a new instance of URLClassLoader for the specified
|
||||
* URLs and default parent class loader. If a security manager is
|
||||
* installed, the <code>loadClass</code> method of the URLClassLoader
|
||||
* installed, the {@code loadClass} method of the URLClassLoader
|
||||
* returned by this method will invoke the
|
||||
* <code>SecurityManager.checkPackageAccess</code> before
|
||||
* {@code SecurityManager.checkPackageAccess} before
|
||||
* loading the class.
|
||||
*
|
||||
* @param urls the URLs to search for classes and resources
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -40,15 +40,15 @@ import sun.security.util.SecurityConstants;
|
||||
import sun.net.www.MessageHeader;
|
||||
|
||||
/**
|
||||
* The abstract class <code>URLConnection</code> is the superclass
|
||||
* The abstract class {@code URLConnection} is the superclass
|
||||
* of all classes that represent a communications link between the
|
||||
* application and a URL. Instances of this class can be used both to
|
||||
* read from and to write to the resource referenced by the URL. In
|
||||
* general, creating a connection to a URL is a multistep process:
|
||||
* <p>
|
||||
* <center><table border=2 summary="Describes the process of creating a connection to a URL: openConnection() and connect() over time.">
|
||||
* <tr><th><code>openConnection()</code></th>
|
||||
* <th><code>connect()</code></th></tr>
|
||||
* <tr><th>{@code openConnection()}</th>
|
||||
* <th>{@code connect()}</th></tr>
|
||||
* <tr><td>Manipulate parameters that affect the connection to the remote
|
||||
* resource.</td>
|
||||
* <td>Interact with the resource; query header fields and
|
||||
@ -59,78 +59,78 @@ import sun.net.www.MessageHeader;
|
||||
*
|
||||
* <ol>
|
||||
* <li>The connection object is created by invoking the
|
||||
* <code>openConnection</code> method on a URL.
|
||||
* {@code openConnection} method on a URL.
|
||||
* <li>The setup parameters and general request properties are manipulated.
|
||||
* <li>The actual connection to the remote object is made, using the
|
||||
* <code>connect</code> method.
|
||||
* {@code connect} method.
|
||||
* <li>The remote object becomes available. The header fields and the contents
|
||||
* of the remote object can be accessed.
|
||||
* </ol>
|
||||
* <p>
|
||||
* The setup parameters are modified using the following methods:
|
||||
* <ul>
|
||||
* <li><code>setAllowUserInteraction</code>
|
||||
* <li><code>setDoInput</code>
|
||||
* <li><code>setDoOutput</code>
|
||||
* <li><code>setIfModifiedSince</code>
|
||||
* <li><code>setUseCaches</code>
|
||||
* <li>{@code setAllowUserInteraction}
|
||||
* <li>{@code setDoInput}
|
||||
* <li>{@code setDoOutput}
|
||||
* <li>{@code setIfModifiedSince}
|
||||
* <li>{@code setUseCaches}
|
||||
* </ul>
|
||||
* <p>
|
||||
* and the general request properties are modified using the method:
|
||||
* <ul>
|
||||
* <li><code>setRequestProperty</code>
|
||||
* <li>{@code setRequestProperty}
|
||||
* </ul>
|
||||
* <p>
|
||||
* Default values for the <code>AllowUserInteraction</code> and
|
||||
* <code>UseCaches</code> parameters can be set using the methods
|
||||
* <code>setDefaultAllowUserInteraction</code> and
|
||||
* <code>setDefaultUseCaches</code>.
|
||||
* Default values for the {@code AllowUserInteraction} and
|
||||
* {@code UseCaches} parameters can be set using the methods
|
||||
* {@code setDefaultAllowUserInteraction} and
|
||||
* {@code setDefaultUseCaches}.
|
||||
* <p>
|
||||
* Each of the above <code>set</code> methods has a corresponding
|
||||
* <code>get</code> method to retrieve the value of the parameter or
|
||||
* Each of the above {@code set} methods has a corresponding
|
||||
* {@code get} method to retrieve the value of the parameter or
|
||||
* general request property. The specific parameters and general
|
||||
* request properties that are applicable are protocol specific.
|
||||
* <p>
|
||||
* The following methods are used to access the header fields and
|
||||
* the contents after the connection is made to the remote object:
|
||||
* <ul>
|
||||
* <li><code>getContent</code>
|
||||
* <li><code>getHeaderField</code>
|
||||
* <li><code>getInputStream</code>
|
||||
* <li><code>getOutputStream</code>
|
||||
* <li>{@code getContent}
|
||||
* <li>{@code getHeaderField}
|
||||
* <li>{@code getInputStream}
|
||||
* <li>{@code getOutputStream}
|
||||
* </ul>
|
||||
* <p>
|
||||
* Certain header fields are accessed frequently. The methods:
|
||||
* <ul>
|
||||
* <li><code>getContentEncoding</code>
|
||||
* <li><code>getContentLength</code>
|
||||
* <li><code>getContentType</code>
|
||||
* <li><code>getDate</code>
|
||||
* <li><code>getExpiration</code>
|
||||
* <li><code>getLastModifed</code>
|
||||
* <li>{@code getContentEncoding}
|
||||
* <li>{@code getContentLength}
|
||||
* <li>{@code getContentType}
|
||||
* <li>{@code getDate}
|
||||
* <li>{@code getExpiration}
|
||||
* <li>{@code getLastModifed}
|
||||
* </ul>
|
||||
* <p>
|
||||
* provide convenient access to these fields. The
|
||||
* <code>getContentType</code> method is used by the
|
||||
* <code>getContent</code> method to determine the type of the remote
|
||||
* {@code getContentType} method is used by the
|
||||
* {@code getContent} method to determine the type of the remote
|
||||
* object; subclasses may find it convenient to override the
|
||||
* <code>getContentType</code> method.
|
||||
* {@code getContentType} method.
|
||||
* <p>
|
||||
* In the common case, all of the pre-connection parameters and
|
||||
* general request properties can be ignored: the pre-connection
|
||||
* parameters and request properties default to sensible values. For
|
||||
* most clients of this interface, there are only two interesting
|
||||
* methods: <code>getInputStream</code> and <code>getContent</code>,
|
||||
* which are mirrored in the <code>URL</code> class by convenience methods.
|
||||
* methods: {@code getInputStream} and {@code getContent},
|
||||
* which are mirrored in the {@code URL} class by convenience methods.
|
||||
* <p>
|
||||
* More information on the request properties and header fields of
|
||||
* an <code>http</code> connection can be found at:
|
||||
* an {@code http} connection can be found at:
|
||||
* <blockquote><pre>
|
||||
* <a href="http://www.ietf.org/rfc/rfc2616.txt">http://www.ietf.org/rfc/rfc2616.txt</a>
|
||||
* </pre></blockquote>
|
||||
*
|
||||
* Invoking the <tt>close()</tt> methods on the <tt>InputStream</tt> or <tt>OutputStream</tt> of an
|
||||
* <tt>URLConnection</tt> after a request may free network resources associated with this
|
||||
* Invoking the {@code close()} methods on the {@code InputStream} or {@code OutputStream} of an
|
||||
* {@code URLConnection} after a request may free network resources associated with this
|
||||
* instance, unless particular protocol specifications specify different behaviours
|
||||
* for it.
|
||||
*
|
||||
@ -164,10 +164,10 @@ public abstract class URLConnection {
|
||||
* which this connection is opened.
|
||||
* <p>
|
||||
* The value of this field can be accessed by the
|
||||
* <code>getURL</code> method.
|
||||
* {@code getURL} method.
|
||||
* <p>
|
||||
* The default value of this variable is the value of the URL
|
||||
* argument in the <code>URLConnection</code> constructor.
|
||||
* argument in the {@code URLConnection} constructor.
|
||||
*
|
||||
* @see java.net.URLConnection#getURL()
|
||||
* @see java.net.URLConnection#url
|
||||
@ -175,14 +175,14 @@ public abstract class URLConnection {
|
||||
protected URL url;
|
||||
|
||||
/**
|
||||
* This variable is set by the <code>setDoInput</code> method. Its
|
||||
* value is returned by the <code>getDoInput</code> method.
|
||||
* This variable is set by the {@code setDoInput} method. Its
|
||||
* value is returned by the {@code getDoInput} method.
|
||||
* <p>
|
||||
* A URL connection can be used for input and/or output. Setting the
|
||||
* <code>doInput</code> flag to <code>true</code> indicates that
|
||||
* {@code doInput} flag to {@code true} indicates that
|
||||
* the application intends to read data from the URL connection.
|
||||
* <p>
|
||||
* The default value of this field is <code>true</code>.
|
||||
* The default value of this field is {@code true}.
|
||||
*
|
||||
* @see java.net.URLConnection#getDoInput()
|
||||
* @see java.net.URLConnection#setDoInput(boolean)
|
||||
@ -190,14 +190,14 @@ public abstract class URLConnection {
|
||||
protected boolean doInput = true;
|
||||
|
||||
/**
|
||||
* This variable is set by the <code>setDoOutput</code> method. Its
|
||||
* value is returned by the <code>getDoOutput</code> method.
|
||||
* This variable is set by the {@code setDoOutput} method. Its
|
||||
* value is returned by the {@code getDoOutput} method.
|
||||
* <p>
|
||||
* A URL connection can be used for input and/or output. Setting the
|
||||
* <code>doOutput</code> flag to <code>true</code> indicates
|
||||
* {@code doOutput} flag to {@code true} indicates
|
||||
* that the application intends to write data to the URL connection.
|
||||
* <p>
|
||||
* The default value of this field is <code>false</code>.
|
||||
* The default value of this field is {@code false}.
|
||||
*
|
||||
* @see java.net.URLConnection#getDoOutput()
|
||||
* @see java.net.URLConnection#setDoOutput(boolean)
|
||||
@ -207,17 +207,17 @@ public abstract class URLConnection {
|
||||
private static boolean defaultAllowUserInteraction = false;
|
||||
|
||||
/**
|
||||
* If <code>true</code>, this <code>URL</code> is being examined in
|
||||
* If {@code true}, this {@code URL} is being examined in
|
||||
* a context in which it makes sense to allow user interactions such
|
||||
* as popping up an authentication dialog. If <code>false</code>,
|
||||
* as popping up an authentication dialog. If {@code false},
|
||||
* then no user interaction is allowed.
|
||||
* <p>
|
||||
* The value of this field can be set by the
|
||||
* <code>setAllowUserInteraction</code> method.
|
||||
* {@code setAllowUserInteraction} method.
|
||||
* Its value is returned by the
|
||||
* <code>getAllowUserInteraction</code> method.
|
||||
* {@code getAllowUserInteraction} method.
|
||||
* Its default value is the value of the argument in the last invocation
|
||||
* of the <code>setDefaultAllowUserInteraction</code> method.
|
||||
* of the {@code setDefaultAllowUserInteraction} method.
|
||||
*
|
||||
* @see java.net.URLConnection#getAllowUserInteraction()
|
||||
* @see java.net.URLConnection#setAllowUserInteraction(boolean)
|
||||
@ -228,15 +228,15 @@ public abstract class URLConnection {
|
||||
private static boolean defaultUseCaches = true;
|
||||
|
||||
/**
|
||||
* If <code>true</code>, the protocol is allowed to use caching
|
||||
* whenever it can. If <code>false</code>, the protocol must always
|
||||
* If {@code true}, the protocol is allowed to use caching
|
||||
* whenever it can. If {@code false}, the protocol must always
|
||||
* try to get a fresh copy of the object.
|
||||
* <p>
|
||||
* This field is set by the <code>setUseCaches</code> method. Its
|
||||
* value is returned by the <code>getUseCaches</code> method.
|
||||
* This field is set by the {@code setUseCaches} method. Its
|
||||
* value is returned by the {@code getUseCaches} method.
|
||||
* <p>
|
||||
* Its default value is the value given in the last invocation of the
|
||||
* <code>setDefaultUseCaches</code> method.
|
||||
* {@code setDefaultUseCaches} method.
|
||||
*
|
||||
* @see java.net.URLConnection#setUseCaches(boolean)
|
||||
* @see java.net.URLConnection#getUseCaches()
|
||||
@ -252,11 +252,11 @@ public abstract class URLConnection {
|
||||
* January 1, 1970, GMT. The object is fetched only if it has been
|
||||
* modified more recently than that time.
|
||||
* <p>
|
||||
* This variable is set by the <code>setIfModifiedSince</code>
|
||||
* This variable is set by the {@code setIfModifiedSince}
|
||||
* method. Its value is returned by the
|
||||
* <code>getIfModifiedSince</code> method.
|
||||
* {@code getIfModifiedSince} method.
|
||||
* <p>
|
||||
* The default value of this field is <code>0</code>, indicating
|
||||
* The default value of this field is {@code 0}, indicating
|
||||
* that the fetching must always occur.
|
||||
*
|
||||
* @see java.net.URLConnection#getIfModifiedSince()
|
||||
@ -265,8 +265,8 @@ public abstract class URLConnection {
|
||||
protected long ifModifiedSince = 0;
|
||||
|
||||
/**
|
||||
* If <code>false</code>, this connection object has not created a
|
||||
* communications link to the specified URL. If <code>true</code>,
|
||||
* If {@code false}, this connection object has not created a
|
||||
* communications link to the specified URL. If {@code true},
|
||||
* the communications link has been established.
|
||||
*/
|
||||
protected boolean connected = false;
|
||||
@ -320,13 +320,13 @@ public abstract class URLConnection {
|
||||
* Sets the FileNameMap.
|
||||
* <p>
|
||||
* If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @param map the FileNameMap to be set
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow the operation.
|
||||
* {@code checkSetFactory} method doesn't allow the operation.
|
||||
* @see SecurityManager#checkSetFactory
|
||||
* @see #getFileNameMap()
|
||||
* @since 1.2
|
||||
@ -341,9 +341,9 @@ public abstract class URLConnection {
|
||||
* Opens a communications link to the resource referenced by this
|
||||
* URL, if such a connection has not already been established.
|
||||
* <p>
|
||||
* If the <code>connect</code> method is called when the connection
|
||||
* has already been opened (indicated by the <code>connected</code>
|
||||
* field having the value <code>true</code>), the call is ignored.
|
||||
* If the {@code connect} method is called when the connection
|
||||
* has already been opened (indicated by the {@code connected}
|
||||
* field having the value {@code true}), the call is ignored.
|
||||
* <p>
|
||||
* URLConnection objects go through two phases: first they are
|
||||
* created, then they are connected. After being created, and
|
||||
@ -375,7 +375,7 @@ public abstract class URLConnection {
|
||||
* the specified timeout. To see the connect timeout set, please
|
||||
* call getConnectTimeout().
|
||||
*
|
||||
* @param timeout an <code>int</code> that specifies the connect
|
||||
* @param timeout an {@code int} that specifies the connect
|
||||
* timeout value in milliseconds
|
||||
* @throws IllegalArgumentException if the timeout parameter is negative
|
||||
*
|
||||
@ -396,7 +396,7 @@ public abstract class URLConnection {
|
||||
* 0 return implies that the option is disabled
|
||||
* (i.e., timeout of infinity).
|
||||
*
|
||||
* @return an <code>int</code> that indicates the connect timeout
|
||||
* @return an {@code int} that indicates the connect timeout
|
||||
* value in milliseconds
|
||||
* @see #setConnectTimeout(int)
|
||||
* @see #connect()
|
||||
@ -418,7 +418,7 @@ public abstract class URLConnection {
|
||||
* specified timeout. To see the read timeout set, please call
|
||||
* getReadTimeout().
|
||||
*
|
||||
* @param timeout an <code>int</code> that specifies the timeout
|
||||
* @param timeout an {@code int} that specifies the timeout
|
||||
* value to be used in milliseconds
|
||||
* @throws IllegalArgumentException if the timeout parameter is negative
|
||||
*
|
||||
@ -437,7 +437,7 @@ public abstract class URLConnection {
|
||||
* Returns setting for read timeout. 0 return implies that the
|
||||
* option is disabled (i.e., timeout of infinity).
|
||||
*
|
||||
* @return an <code>int</code> that indicates the read timeout
|
||||
* @return an {@code int} that indicates the read timeout
|
||||
* value in milliseconds
|
||||
*
|
||||
* @see #setReadTimeout(int)
|
||||
@ -459,10 +459,10 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this <code>URLConnection</code>'s <code>URL</code>
|
||||
* Returns the value of this {@code URLConnection}'s {@code URL}
|
||||
* field.
|
||||
*
|
||||
* @return the value of this <code>URLConnection</code>'s <code>URL</code>
|
||||
* @return the value of this {@code URLConnection}'s {@code URL}
|
||||
* field.
|
||||
* @see java.net.URLConnection#url
|
||||
*/
|
||||
@ -471,7 +471,7 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>content-length</code> header field.
|
||||
* Returns the value of the {@code content-length} header field.
|
||||
* <P>
|
||||
* <B>Note</B>: {@link #getContentLengthLong() getContentLengthLong()}
|
||||
* should be preferred over this method, since it returns a {@code long}
|
||||
@ -489,11 +489,11 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>content-length</code> header field as a
|
||||
* Returns the value of the {@code content-length} header field as a
|
||||
* long.
|
||||
*
|
||||
* @return the content length of the resource that this connection's URL
|
||||
* references, or <code>-1</code> if the content length is
|
||||
* references, or {@code -1} if the content length is
|
||||
* not known.
|
||||
* @since 7.0
|
||||
*/
|
||||
@ -502,10 +502,10 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>content-type</code> header field.
|
||||
* Returns the value of the {@code content-type} header field.
|
||||
*
|
||||
* @return the content type of the resource that the URL references,
|
||||
* or <code>null</code> if not known.
|
||||
* or {@code null} if not known.
|
||||
* @see java.net.URLConnection#getHeaderField(java.lang.String)
|
||||
*/
|
||||
public String getContentType() {
|
||||
@ -513,10 +513,10 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>content-encoding</code> header field.
|
||||
* Returns the value of the {@code content-encoding} header field.
|
||||
*
|
||||
* @return the content encoding of the resource that the URL references,
|
||||
* or <code>null</code> if not known.
|
||||
* or {@code null} if not known.
|
||||
* @see java.net.URLConnection#getHeaderField(java.lang.String)
|
||||
*/
|
||||
public String getContentEncoding() {
|
||||
@ -524,7 +524,7 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>expires</code> header field.
|
||||
* Returns the value of the {@code expires} header field.
|
||||
*
|
||||
* @return the expiration date of the resource that this URL references,
|
||||
* or 0 if not known. The value is the number of milliseconds since
|
||||
@ -536,10 +536,10 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>date</code> header field.
|
||||
* Returns the value of the {@code date} header field.
|
||||
*
|
||||
* @return the sending date of the resource that the URL references,
|
||||
* or <code>0</code> if not known. The value returned is the
|
||||
* or {@code 0} if not known. The value returned is the
|
||||
* number of milliseconds since January 1, 1970 GMT.
|
||||
* @see java.net.URLConnection#getHeaderField(java.lang.String)
|
||||
*/
|
||||
@ -548,11 +548,11 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>last-modified</code> header field.
|
||||
* Returns the value of the {@code last-modified} header field.
|
||||
* The result is the number of milliseconds since January 1, 1970 GMT.
|
||||
*
|
||||
* @return the date the resource referenced by this
|
||||
* <code>URLConnection</code> was last modified, or 0 if not known.
|
||||
* {@code URLConnection} was last modified, or 0 if not known.
|
||||
* @see java.net.URLConnection#getHeaderField(java.lang.String)
|
||||
*/
|
||||
public long getLastModified() {
|
||||
@ -567,7 +567,7 @@ public abstract class URLConnection {
|
||||
*
|
||||
*
|
||||
* @param name the name of a header field.
|
||||
* @return the value of the named header field, or <code>null</code>
|
||||
* @return the value of the named header field, or {@code null}
|
||||
* if there is no such field in the header.
|
||||
*/
|
||||
public String getHeaderField(String name) {
|
||||
@ -591,15 +591,15 @@ public abstract class URLConnection {
|
||||
/**
|
||||
* Returns the value of the named field parsed as a number.
|
||||
* <p>
|
||||
* This form of <code>getHeaderField</code> exists because some
|
||||
* connection types (e.g., <code>http-ng</code>) have pre-parsed
|
||||
* This form of {@code getHeaderField} exists because some
|
||||
* connection types (e.g., {@code http-ng}) have pre-parsed
|
||||
* headers. Classes for that connection type can override this method
|
||||
* and short-circuit the parsing.
|
||||
*
|
||||
* @param name the name of the header field.
|
||||
* @param Default the default value.
|
||||
* @return the value of the named field, parsed as an integer. The
|
||||
* <code>Default</code> value is returned if the field is
|
||||
* {@code Default} value is returned if the field is
|
||||
* missing or malformed.
|
||||
*/
|
||||
public int getHeaderFieldInt(String name, int Default) {
|
||||
@ -613,15 +613,15 @@ public abstract class URLConnection {
|
||||
/**
|
||||
* Returns the value of the named field parsed as a number.
|
||||
* <p>
|
||||
* This form of <code>getHeaderField</code> exists because some
|
||||
* connection types (e.g., <code>http-ng</code>) have pre-parsed
|
||||
* This form of {@code getHeaderField} exists because some
|
||||
* connection types (e.g., {@code http-ng}) have pre-parsed
|
||||
* headers. Classes for that connection type can override this method
|
||||
* and short-circuit the parsing.
|
||||
*
|
||||
* @param name the name of the header field.
|
||||
* @param Default the default value.
|
||||
* @return the value of the named field, parsed as a long. The
|
||||
* <code>Default</code> value is returned if the field is
|
||||
* {@code Default} value is returned if the field is
|
||||
* missing or malformed.
|
||||
* @since 7.0
|
||||
*/
|
||||
@ -638,15 +638,15 @@ public abstract class URLConnection {
|
||||
* The result is the number of milliseconds since January 1, 1970 GMT
|
||||
* represented by the named field.
|
||||
* <p>
|
||||
* This form of <code>getHeaderField</code> exists because some
|
||||
* connection types (e.g., <code>http-ng</code>) have pre-parsed
|
||||
* This form of {@code getHeaderField} exists because some
|
||||
* connection types (e.g., {@code http-ng}) have pre-parsed
|
||||
* headers. Classes for that connection type can override this method
|
||||
* and short-circuit the parsing.
|
||||
*
|
||||
* @param name the name of the header field.
|
||||
* @param Default a default value.
|
||||
* @return the value of the field, parsed as a date. The value of the
|
||||
* <code>Default</code> argument is returned if the field is
|
||||
* {@code Default} argument is returned if the field is
|
||||
* missing or malformed.
|
||||
*/
|
||||
@SuppressWarnings("deprecation")
|
||||
@ -659,12 +659,12 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the key for the <code>n</code><sup>th</sup> header field.
|
||||
* It returns <code>null</code> if there are fewer than <code>n+1</code> fields.
|
||||
* Returns the key for the {@code n}<sup>th</sup> header field.
|
||||
* It returns {@code null} if there are fewer than {@code n+1} fields.
|
||||
*
|
||||
* @param n an index, where {@code n>=0}
|
||||
* @return the key for the <code>n</code><sup>th</sup> header field,
|
||||
* or <code>null</code> if there are fewer than <code>n+1</code>
|
||||
* @return the key for the {@code n}<sup>th</sup> header field,
|
||||
* or {@code null} if there are fewer than {@code n+1}
|
||||
* fields.
|
||||
*/
|
||||
public String getHeaderFieldKey(int n) {
|
||||
@ -672,17 +672,17 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value for the <code>n</code><sup>th</sup> header field.
|
||||
* It returns <code>null</code> if there are fewer than
|
||||
* <code>n+1</code>fields.
|
||||
* Returns the value for the {@code n}<sup>th</sup> header field.
|
||||
* It returns {@code null} if there are fewer than
|
||||
* {@code n+1}fields.
|
||||
* <p>
|
||||
* This method can be used in conjunction with the
|
||||
* {@link #getHeaderFieldKey(int) getHeaderFieldKey} method to iterate through all
|
||||
* the headers in the message.
|
||||
*
|
||||
* @param n an index, where {@code n>=0}
|
||||
* @return the value of the <code>n</code><sup>th</sup> header field
|
||||
* or <code>null</code> if there are fewer than <code>n+1</code> fields
|
||||
* @return the value of the {@code n}<sup>th</sup> header field
|
||||
* or {@code null} if there are fewer than {@code n+1} fields
|
||||
* @see java.net.URLConnection#getHeaderFieldKey(int)
|
||||
*/
|
||||
public String getHeaderField(int n) {
|
||||
@ -693,35 +693,35 @@ public abstract class URLConnection {
|
||||
* Retrieves the contents of this URL connection.
|
||||
* <p>
|
||||
* This method first determines the content type of the object by
|
||||
* calling the <code>getContentType</code> method. If this is
|
||||
* calling the {@code getContentType} method. If this is
|
||||
* the first time that the application has seen that specific content
|
||||
* type, a content handler for that content type is created:
|
||||
* <ol>
|
||||
* <li>If the application has set up a content handler factory instance
|
||||
* using the <code>setContentHandlerFactory</code> method, the
|
||||
* <code>createContentHandler</code> method of that instance is called
|
||||
* using the {@code setContentHandlerFactory} method, the
|
||||
* {@code createContentHandler} method of that instance is called
|
||||
* with the content type as an argument; the result is a content
|
||||
* handler for that content type.
|
||||
* <li>If no content handler factory has yet been set up, or if the
|
||||
* factory's <code>createContentHandler</code> method returns
|
||||
* <code>null</code>, then the application loads the class named:
|
||||
* factory's {@code createContentHandler} method returns
|
||||
* {@code null}, then the application loads the class named:
|
||||
* <blockquote><pre>
|
||||
* sun.net.www.content.<<i>contentType</i>>
|
||||
* </pre></blockquote>
|
||||
* where <<i>contentType</i>> is formed by taking the
|
||||
* content-type string, replacing all slash characters with a
|
||||
* <code>period</code> ('.'), and all other non-alphanumeric characters
|
||||
* with the underscore character '<code>_</code>'. The alphanumeric
|
||||
* {@code period} ('.'), and all other non-alphanumeric characters
|
||||
* with the underscore character '{@code _}'. The alphanumeric
|
||||
* characters are specifically the 26 uppercase ASCII letters
|
||||
* '<code>A</code>' through '<code>Z</code>', the 26 lowercase ASCII
|
||||
* letters '<code>a</code>' through '<code>z</code>', and the 10 ASCII
|
||||
* digits '<code>0</code>' through '<code>9</code>'. If the specified
|
||||
* '{@code A}' through '{@code Z}', the 26 lowercase ASCII
|
||||
* letters '{@code a}' through '{@code z}', and the 10 ASCII
|
||||
* digits '{@code 0}' through '{@code 9}'. If the specified
|
||||
* class does not exist, or is not a subclass of
|
||||
* <code>ContentHandler</code>, then an
|
||||
* <code>UnknownServiceException</code> is thrown.
|
||||
* {@code ContentHandler}, then an
|
||||
* {@code UnknownServiceException} is thrown.
|
||||
* </ol>
|
||||
*
|
||||
* @return the object fetched. The <code>instanceof</code> operator
|
||||
* @return the object fetched. The {@code instanceof} operator
|
||||
* should be used to determine the specific kind of object
|
||||
* returned.
|
||||
* @exception IOException if an I/O error occurs while
|
||||
@ -743,12 +743,12 @@ public abstract class URLConnection {
|
||||
/**
|
||||
* Retrieves the contents of this URL connection.
|
||||
*
|
||||
* @param classes the <code>Class</code> array
|
||||
* @param classes the {@code Class} array
|
||||
* indicating the requested types
|
||||
* @return the object fetched that is the first match of the type
|
||||
* specified in the classes array. null if none of
|
||||
* the requested types are supported.
|
||||
* The <code>instanceof</code> operator should be used to
|
||||
* The {@code instanceof} operator should be used to
|
||||
* determine the specific kind of object returned.
|
||||
* @exception IOException if an I/O error occurs while
|
||||
* getting the content.
|
||||
@ -773,12 +773,12 @@ public abstract class URLConnection {
|
||||
* necessary to make the connection represented by this
|
||||
* object. This method returns null if no permission is
|
||||
* required to make the connection. By default, this method
|
||||
* returns <code>java.security.AllPermission</code>. Subclasses
|
||||
* returns {@code java.security.AllPermission}. Subclasses
|
||||
* should override this method and return the permission
|
||||
* that best represents the permission required to make a
|
||||
* a connection to the URL. For example, a <code>URLConnection</code>
|
||||
* representing a <code>file:</code> URL would return a
|
||||
* <code>java.io.FilePermission</code> object.
|
||||
* a connection to the URL. For example, a {@code URLConnection}
|
||||
* representing a {@code file:} URL would return a
|
||||
* {@code java.io.FilePermission} object.
|
||||
*
|
||||
* <p>The permission returned may dependent upon the state of the
|
||||
* connection. For example, the permission before connecting may be
|
||||
@ -844,17 +844,17 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a <code>String</code> representation of this URL connection.
|
||||
* Returns a {@code String} representation of this URL connection.
|
||||
*
|
||||
* @return a string representation of this <code>URLConnection</code>.
|
||||
* @return a string representation of this {@code URLConnection}.
|
||||
*/
|
||||
public String toString() {
|
||||
return this.getClass().getName() + ":" + url;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the <code>doInput</code> field for this
|
||||
* <code>URLConnection</code> to the specified value.
|
||||
* Sets the value of the {@code doInput} field for this
|
||||
* {@code URLConnection} to the specified value.
|
||||
* <p>
|
||||
* A URL connection can be used for input and/or output. Set the DoInput
|
||||
* flag to true if you intend to use the URL connection for input,
|
||||
@ -872,11 +872,11 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this <code>URLConnection</code>'s
|
||||
* <code>doInput</code> flag.
|
||||
* Returns the value of this {@code URLConnection}'s
|
||||
* {@code doInput} flag.
|
||||
*
|
||||
* @return the value of this <code>URLConnection</code>'s
|
||||
* <code>doInput</code> flag.
|
||||
* @return the value of this {@code URLConnection}'s
|
||||
* {@code doInput} flag.
|
||||
* @see #setDoInput(boolean)
|
||||
*/
|
||||
public boolean getDoInput() {
|
||||
@ -884,8 +884,8 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the <code>doOutput</code> field for this
|
||||
* <code>URLConnection</code> to the specified value.
|
||||
* Sets the value of the {@code doOutput} field for this
|
||||
* {@code URLConnection} to the specified value.
|
||||
* <p>
|
||||
* A URL connection can be used for input and/or output. Set the DoOutput
|
||||
* flag to true if you intend to use the URL connection for output,
|
||||
@ -902,11 +902,11 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this <code>URLConnection</code>'s
|
||||
* <code>doOutput</code> flag.
|
||||
* Returns the value of this {@code URLConnection}'s
|
||||
* {@code doOutput} flag.
|
||||
*
|
||||
* @return the value of this <code>URLConnection</code>'s
|
||||
* <code>doOutput</code> flag.
|
||||
* @return the value of this {@code URLConnection}'s
|
||||
* {@code doOutput} flag.
|
||||
* @see #setDoOutput(boolean)
|
||||
*/
|
||||
public boolean getDoOutput() {
|
||||
@ -914,8 +914,8 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the value of the <code>allowUserInteraction</code> field of
|
||||
* this <code>URLConnection</code>.
|
||||
* Set the value of the {@code allowUserInteraction} field of
|
||||
* this {@code URLConnection}.
|
||||
*
|
||||
* @param allowuserinteraction the new value.
|
||||
* @throws IllegalStateException if already connected
|
||||
@ -928,10 +928,10 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of the <code>allowUserInteraction</code> field for
|
||||
* Returns the value of the {@code allowUserInteraction} field for
|
||||
* this object.
|
||||
*
|
||||
* @return the value of the <code>allowUserInteraction</code> field for
|
||||
* @return the value of the {@code allowUserInteraction} field for
|
||||
* this object.
|
||||
* @see #setAllowUserInteraction(boolean)
|
||||
*/
|
||||
@ -941,8 +941,8 @@ public abstract class URLConnection {
|
||||
|
||||
/**
|
||||
* Sets the default value of the
|
||||
* <code>allowUserInteraction</code> field for all future
|
||||
* <code>URLConnection</code> objects to the specified value.
|
||||
* {@code allowUserInteraction} field for all future
|
||||
* {@code URLConnection} objects to the specified value.
|
||||
*
|
||||
* @param defaultallowuserinteraction the new value.
|
||||
* @see #getDefaultAllowUserInteraction()
|
||||
@ -952,14 +952,14 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default value of the <code>allowUserInteraction</code>
|
||||
* Returns the default value of the {@code allowUserInteraction}
|
||||
* field.
|
||||
* <p>
|
||||
* Ths default is "sticky", being a part of the static state of all
|
||||
* URLConnections. This flag applies to the next, and all following
|
||||
* URLConnections that are created.
|
||||
*
|
||||
* @return the default value of the <code>allowUserInteraction</code>
|
||||
* @return the default value of the {@code allowUserInteraction}
|
||||
* field.
|
||||
* @see #setDefaultAllowUserInteraction(boolean)
|
||||
*/
|
||||
@ -968,8 +968,8 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the <code>useCaches</code> field of this
|
||||
* <code>URLConnection</code> to the specified value.
|
||||
* Sets the value of the {@code useCaches} field of this
|
||||
* {@code URLConnection} to the specified value.
|
||||
* <p>
|
||||
* Some protocols do caching of documents. Occasionally, it is important
|
||||
* to be able to "tunnel through" and ignore the caches (e.g., the
|
||||
@ -979,7 +979,7 @@ public abstract class URLConnection {
|
||||
* The default value comes from DefaultUseCaches, which defaults to
|
||||
* true.
|
||||
*
|
||||
* @param usecaches a <code>boolean</code> indicating whether
|
||||
* @param usecaches a {@code boolean} indicating whether
|
||||
* or not to allow caching
|
||||
* @throws IllegalStateException if already connected
|
||||
* @see #getUseCaches()
|
||||
@ -991,11 +991,11 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this <code>URLConnection</code>'s
|
||||
* <code>useCaches</code> field.
|
||||
* Returns the value of this {@code URLConnection}'s
|
||||
* {@code useCaches} field.
|
||||
*
|
||||
* @return the value of this <code>URLConnection</code>'s
|
||||
* <code>useCaches</code> field.
|
||||
* @return the value of this {@code URLConnection}'s
|
||||
* {@code useCaches} field.
|
||||
* @see #setUseCaches(boolean)
|
||||
*/
|
||||
public boolean getUseCaches() {
|
||||
@ -1003,8 +1003,8 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the value of the <code>ifModifiedSince</code> field of
|
||||
* this <code>URLConnection</code> to the specified value.
|
||||
* Sets the value of the {@code ifModifiedSince} field of
|
||||
* this {@code URLConnection} to the specified value.
|
||||
*
|
||||
* @param ifmodifiedsince the new value.
|
||||
* @throws IllegalStateException if already connected
|
||||
@ -1017,9 +1017,9 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this object's <code>ifModifiedSince</code> field.
|
||||
* Returns the value of this object's {@code ifModifiedSince} field.
|
||||
*
|
||||
* @return the value of this object's <code>ifModifiedSince</code> field.
|
||||
* @return the value of this object's {@code ifModifiedSince} field.
|
||||
* @see #setIfModifiedSince(long)
|
||||
*/
|
||||
public long getIfModifiedSince() {
|
||||
@ -1027,15 +1027,15 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default value of a <code>URLConnection</code>'s
|
||||
* <code>useCaches</code> flag.
|
||||
* Returns the default value of a {@code URLConnection}'s
|
||||
* {@code useCaches} flag.
|
||||
* <p>
|
||||
* Ths default is "sticky", being a part of the static state of all
|
||||
* URLConnections. This flag applies to the next, and all following
|
||||
* URLConnections that are created.
|
||||
*
|
||||
* @return the default value of a <code>URLConnection</code>'s
|
||||
* <code>useCaches</code> flag.
|
||||
* @return the default value of a {@code URLConnection}'s
|
||||
* {@code useCaches} flag.
|
||||
* @see #setDefaultUseCaches(boolean)
|
||||
*/
|
||||
public boolean getDefaultUseCaches() {
|
||||
@ -1043,7 +1043,7 @@ public abstract class URLConnection {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default value of the <code>useCaches</code> field to the
|
||||
* Sets the default value of the {@code useCaches} field to the
|
||||
* specified value.
|
||||
*
|
||||
* @param defaultusecaches the new value.
|
||||
@ -1063,7 +1063,7 @@ public abstract class URLConnection {
|
||||
* properties to be appended into a single property.
|
||||
*
|
||||
* @param key the keyword by which the request is known
|
||||
* (e.g., "<code>Accept</code>").
|
||||
* (e.g., "{@code Accept}").
|
||||
* @param value the value associated with it.
|
||||
* @throws IllegalStateException if already connected
|
||||
* @throws NullPointerException if key is <CODE>null</CODE>
|
||||
@ -1087,7 +1087,7 @@ public abstract class URLConnection {
|
||||
* existing values associated with the same key.
|
||||
*
|
||||
* @param key the keyword by which the request is known
|
||||
* (e.g., "<code>Accept</code>").
|
||||
* (e.g., "{@code Accept}").
|
||||
* @param value the value associated with it.
|
||||
* @throws IllegalStateException if already connected
|
||||
* @throws NullPointerException if key is null
|
||||
@ -1151,11 +1151,11 @@ public abstract class URLConnection {
|
||||
|
||||
/**
|
||||
* Sets the default value of a general request property. When a
|
||||
* <code>URLConnection</code> is created, it is initialized with
|
||||
* {@code URLConnection} is created, it is initialized with
|
||||
* these properties.
|
||||
*
|
||||
* @param key the keyword by which the request is known
|
||||
* (e.g., "<code>Accept</code>").
|
||||
* (e.g., "{@code Accept}").
|
||||
* @param value the value associated with the key.
|
||||
*
|
||||
* @see java.net.URLConnection#setRequestProperty(java.lang.String,java.lang.String)
|
||||
@ -1197,21 +1197,21 @@ public abstract class URLConnection {
|
||||
static ContentHandlerFactory factory;
|
||||
|
||||
/**
|
||||
* Sets the <code>ContentHandlerFactory</code> of an
|
||||
* Sets the {@code ContentHandlerFactory} of an
|
||||
* application. It can be called at most once by an application.
|
||||
* <p>
|
||||
* The <code>ContentHandlerFactory</code> instance is used to
|
||||
* The {@code ContentHandlerFactory} instance is used to
|
||||
* construct a content handler from a content type
|
||||
* <p>
|
||||
* If there is a security manager, this method first calls
|
||||
* the security manager's <code>checkSetFactory</code> method
|
||||
* the security manager's {@code checkSetFactory} method
|
||||
* to ensure the operation is allowed.
|
||||
* This could result in a SecurityException.
|
||||
*
|
||||
* @param fac the desired factory.
|
||||
* @exception Error if the factory has already been defined.
|
||||
* @exception SecurityException if a security manager exists and its
|
||||
* <code>checkSetFactory</code> method doesn't allow the operation.
|
||||
* {@code checkSetFactory} method doesn't allow the operation.
|
||||
* @see java.net.ContentHandlerFactory
|
||||
* @see java.net.URLConnection#getContent()
|
||||
* @see SecurityManager#checkSetFactory
|
||||
@ -1374,7 +1374,7 @@ public abstract class URLConnection {
|
||||
* Tries to determine the content type of an object, based
|
||||
* on the specified "file" component of a URL.
|
||||
* This is a convenience method that can be used by
|
||||
* subclasses that override the <code>getContentType</code> method.
|
||||
* subclasses that override the {@code getContentType} method.
|
||||
*
|
||||
* @param fname a filename.
|
||||
* @return a guess as to what the content type of the object is,
|
||||
@ -1389,16 +1389,16 @@ public abstract class URLConnection {
|
||||
* Tries to determine the type of an input stream based on the
|
||||
* characters at the beginning of the input stream. This method can
|
||||
* be used by subclasses that override the
|
||||
* <code>getContentType</code> method.
|
||||
* {@code getContentType} method.
|
||||
* <p>
|
||||
* Ideally, this routine would not be needed. But many
|
||||
* <code>http</code> servers return the incorrect content type; in
|
||||
* {@code http} servers return the incorrect content type; in
|
||||
* addition, there are many nonstandard extensions. Direct inspection
|
||||
* of the bytes to determine the content type is often more accurate
|
||||
* than believing the content type claimed by the <code>http</code> server.
|
||||
* than believing the content type claimed by the {@code http} server.
|
||||
*
|
||||
* @param is an input stream that supports marks.
|
||||
* @return a guess at the content type, or <code>null</code> if none
|
||||
* @return a guess at the content type, or {@code null} if none
|
||||
* can be determined.
|
||||
* @exception IOException if an I/O error occurs while reading the
|
||||
* input stream.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -34,27 +34,27 @@ import java.io.*;
|
||||
* <p>
|
||||
* The conversion process is the reverse of that used by the URLEncoder class. It is assumed
|
||||
* that all characters in the encoded string are one of the following:
|
||||
* "<code>a</code>" through "<code>z</code>",
|
||||
* "<code>A</code>" through "<code>Z</code>",
|
||||
* "<code>0</code>" through "<code>9</code>", and
|
||||
* "<code>-</code>", "<code>_</code>",
|
||||
* "<code>.</code>", and "<code>*</code>". The
|
||||
* character "<code>%</code>" is allowed but is interpreted
|
||||
* "{@code a}" through "{@code z}",
|
||||
* "{@code A}" through "{@code Z}",
|
||||
* "{@code 0}" through "{@code 9}", and
|
||||
* "{@code -}", "{@code _}",
|
||||
* "{@code .}", and "{@code *}". The
|
||||
* character "{@code %}" is allowed but is interpreted
|
||||
* as the start of a special escaped sequence.
|
||||
* <p>
|
||||
* The following rules are applied in the conversion:
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>The alphanumeric characters "<code>a</code>" through
|
||||
* "<code>z</code>", "<code>A</code>" through
|
||||
* "<code>Z</code>" and "<code>0</code>"
|
||||
* through "<code>9</code>" remain the same.
|
||||
* <li>The special characters "<code>.</code>",
|
||||
* "<code>-</code>", "<code>*</code>", and
|
||||
* "<code>_</code>" remain the same.
|
||||
* <li>The plus sign "<code>+</code>" is converted into a
|
||||
* space character "<code> </code>" .
|
||||
* <li>A sequence of the form "<code>%<i>xy</i></code>" will be
|
||||
* <li>The alphanumeric characters "{@code a}" through
|
||||
* "{@code z}", "{@code A}" through
|
||||
* "{@code Z}" and "{@code 0}"
|
||||
* through "{@code 9}" remain the same.
|
||||
* <li>The special characters "{@code .}",
|
||||
* "{@code -}", "{@code *}", and
|
||||
* "{@code _}" remain the same.
|
||||
* <li>The plus sign "{@code +}" is converted into a
|
||||
* space character " " .
|
||||
* <li>A sequence of the form "<i>{@code %xy}</i>" will be
|
||||
* treated as representing a byte where <i>xy</i> is the two-digit
|
||||
* hexadecimal representation of the 8 bits. Then, all substrings
|
||||
* that contain one or more of these byte sequences consecutively
|
||||
@ -66,7 +66,7 @@ import java.io.*;
|
||||
* <p>
|
||||
* There are two possible ways in which this decoder could deal with
|
||||
* illegal strings. It could either leave illegal characters alone or
|
||||
* it could throw an <tt>{@link java.lang.IllegalArgumentException}</tt>.
|
||||
* it could throw an {@link java.lang.IllegalArgumentException}.
|
||||
* Which approach the decoder takes is left to the
|
||||
* implementation.
|
||||
*
|
||||
@ -81,15 +81,15 @@ public class URLDecoder {
|
||||
static String dfltEncName = URLEncoder.dfltEncName;
|
||||
|
||||
/**
|
||||
* Decodes a <code>x-www-form-urlencoded</code> string.
|
||||
* Decodes a {@code x-www-form-urlencoded} string.
|
||||
* The platform's default encoding is used to determine what characters
|
||||
* are represented by any consecutive sequences of the form
|
||||
* "<code>%<i>xy</i></code>".
|
||||
* @param s the <code>String</code> to decode
|
||||
* "<i>{@code %xy}</i>".
|
||||
* @param s the {@code String} to decode
|
||||
* @deprecated The resulting string may vary depending on the platform's
|
||||
* default encoding. Instead, use the decode(String,String) method
|
||||
* to specify the encoding.
|
||||
* @return the newly decoded <code>String</code>
|
||||
* @return the newly decoded {@code String}
|
||||
*/
|
||||
@Deprecated
|
||||
public static String decode(String s) {
|
||||
@ -106,11 +106,11 @@ public class URLDecoder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Decodes a <code>application/x-www-form-urlencoded</code> string using a specific
|
||||
* Decodes a {@code application/x-www-form-urlencoded} string using a specific
|
||||
* encoding scheme.
|
||||
* The supplied encoding is used to determine
|
||||
* what characters are represented by any consecutive sequences of the
|
||||
* form "<code>%<i>xy</i></code>".
|
||||
* form "<i>{@code %xy}</i>".
|
||||
* <p>
|
||||
* <em><strong>Note:</strong> The <a href=
|
||||
* "http://www.w3.org/TR/html40/appendix/notes.html#non-ascii-chars">
|
||||
@ -118,11 +118,11 @@ public class URLDecoder {
|
||||
* UTF-8 should be used. Not doing so may introduce
|
||||
* incompatibilites.</em>
|
||||
*
|
||||
* @param s the <code>String</code> to decode
|
||||
* @param s the {@code String} to decode
|
||||
* @param enc The name of a supported
|
||||
* <a href="../lang/package-summary.html#charenc">character
|
||||
* encoding</a>.
|
||||
* @return the newly decoded <code>String</code>
|
||||
* @return the newly decoded {@code String}
|
||||
* @exception UnsupportedEncodingException
|
||||
* If character encoding needs to be consulted, but
|
||||
* named character encoding is not supported
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -51,19 +51,19 @@ import sun.security.action.GetPropertyAction;
|
||||
*
|
||||
* <p>
|
||||
* <ul>
|
||||
* <li>The alphanumeric characters "<code>a</code>" through
|
||||
* "<code>z</code>", "<code>A</code>" through
|
||||
* "<code>Z</code>" and "<code>0</code>"
|
||||
* through "<code>9</code>" remain the same.
|
||||
* <li>The special characters "<code>.</code>",
|
||||
* "<code>-</code>", "<code>*</code>", and
|
||||
* "<code>_</code>" remain the same.
|
||||
* <li>The space character "<code> </code>" is
|
||||
* converted into a plus sign "<code>+</code>".
|
||||
* <li>The alphanumeric characters "{@code a}" through
|
||||
* "{@code z}", "{@code A}" through
|
||||
* "{@code Z}" and "{@code 0}"
|
||||
* through "{@code 9}" remain the same.
|
||||
* <li>The special characters "{@code .}",
|
||||
* "{@code -}", "{@code *}", and
|
||||
* "{@code _}" remain the same.
|
||||
* <li>The space character " " is
|
||||
* converted into a plus sign "{@code +}".
|
||||
* <li>All other characters are unsafe and are first converted into
|
||||
* one or more bytes using some encoding scheme. Then each byte is
|
||||
* represented by the 3-character string
|
||||
* "<code>%<i>xy</i></code>", where <i>xy</i> is the
|
||||
* "<i>{@code %xy}</i>", where <i>xy</i> is the
|
||||
* two-digit hexadecimal representation of the byte.
|
||||
* The recommended encoding scheme to use is UTF-8. However,
|
||||
* for compatibility reasons, if an encoding is not specified,
|
||||
@ -152,15 +152,15 @@ public class URLEncoder {
|
||||
private URLEncoder() { }
|
||||
|
||||
/**
|
||||
* Translates a string into <code>x-www-form-urlencoded</code>
|
||||
* Translates a string into {@code x-www-form-urlencoded}
|
||||
* format. This method uses the platform's default encoding
|
||||
* as the encoding scheme to obtain the bytes for unsafe characters.
|
||||
*
|
||||
* @param s <code>String</code> to be translated.
|
||||
* @param s {@code String} to be translated.
|
||||
* @deprecated The resulting string may vary depending on the platform's
|
||||
* default encoding. Instead, use the encode(String,String)
|
||||
* method to specify the encoding.
|
||||
* @return the translated <code>String</code>.
|
||||
* @return the translated {@code String}.
|
||||
*/
|
||||
@Deprecated
|
||||
public static String encode(String s) {
|
||||
@ -177,7 +177,7 @@ public class URLEncoder {
|
||||
}
|
||||
|
||||
/**
|
||||
* Translates a string into <code>application/x-www-form-urlencoded</code>
|
||||
* Translates a string into {@code application/x-www-form-urlencoded}
|
||||
* format using a specific encoding scheme. This method uses the
|
||||
* supplied encoding scheme to obtain the bytes for unsafe
|
||||
* characters.
|
||||
@ -188,11 +188,11 @@ public class URLEncoder {
|
||||
* UTF-8 should be used. Not doing so may introduce
|
||||
* incompatibilites.</em>
|
||||
*
|
||||
* @param s <code>String</code> to be translated.
|
||||
* @param s {@code String} to be translated.
|
||||
* @param enc The name of a supported
|
||||
* <a href="../lang/package-summary.html#charenc">character
|
||||
* encoding</a>.
|
||||
* @return the translated <code>String</code>.
|
||||
* @return the translated {@code String}.
|
||||
* @exception UnsupportedEncodingException
|
||||
* If the named encoding is not supported
|
||||
* @see URLDecoder#decode(java.lang.String, java.lang.String)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -34,15 +34,15 @@ import sun.net.util.IPAddressUtil;
|
||||
import sun.net.www.ParseUtil;
|
||||
|
||||
/**
|
||||
* The abstract class <code>URLStreamHandler</code> is the common
|
||||
* The abstract class {@code URLStreamHandler} is the common
|
||||
* superclass for all stream protocol handlers. A stream protocol
|
||||
* handler knows how to make a connection for a particular protocol
|
||||
* type, such as <code>http</code> or <code>https</code>.
|
||||
* type, such as {@code http} or {@code https}.
|
||||
* <p>
|
||||
* In most cases, an instance of a <code>URLStreamHandler</code>
|
||||
* In most cases, an instance of a {@code URLStreamHandler}
|
||||
* subclass is not created directly by an application. Rather, the
|
||||
* first time a protocol name is encountered when constructing a
|
||||
* <code>URL</code>, the appropriate stream protocol handler is
|
||||
* {@code URL}, the appropriate stream protocol handler is
|
||||
* automatically loaded.
|
||||
*
|
||||
* @author James Gosling
|
||||
@ -52,7 +52,7 @@ import sun.net.www.ParseUtil;
|
||||
public abstract class URLStreamHandler {
|
||||
/**
|
||||
* Opens a connection to the object referenced by the
|
||||
* <code>URL</code> argument.
|
||||
* {@code URL} argument.
|
||||
* This method should be overridden by a subclass.
|
||||
*
|
||||
* <p>If for the handler's protocol (such as HTTP or JAR), there
|
||||
@ -64,7 +64,7 @@ public abstract class URLStreamHandler {
|
||||
* JarURLConnection will be returned.
|
||||
*
|
||||
* @param u the URL that this connects to.
|
||||
* @return a <code>URLConnection</code> object for the <code>URL</code>.
|
||||
* @return a {@code URLConnection} object for the {@code URL}.
|
||||
* @exception IOException if an I/O error occurs while opening the
|
||||
* connection.
|
||||
*/
|
||||
@ -83,7 +83,7 @@ public abstract class URLStreamHandler {
|
||||
* @param p the proxy through which the connection will be made.
|
||||
* If direct connection is desired, Proxy.NO_PROXY
|
||||
* should be specified.
|
||||
* @return a <code>URLConnection</code> object for the <code>URL</code>.
|
||||
* @return a {@code URLConnection} object for the {@code URL}.
|
||||
* @exception IOException if an I/O error occurs while opening the
|
||||
* connection.
|
||||
* @exception IllegalArgumentException if either u or p is null,
|
||||
@ -97,28 +97,28 @@ public abstract class URLStreamHandler {
|
||||
}
|
||||
|
||||
/**
|
||||
* Parses the string representation of a <code>URL</code> into a
|
||||
* <code>URL</code> object.
|
||||
* Parses the string representation of a {@code URL} into a
|
||||
* {@code URL} object.
|
||||
* <p>
|
||||
* If there is any inherited context, then it has already been
|
||||
* copied into the <code>URL</code> argument.
|
||||
* copied into the {@code URL} argument.
|
||||
* <p>
|
||||
* The <code>parseURL</code> method of <code>URLStreamHandler</code>
|
||||
* The {@code parseURL} method of {@code URLStreamHandler}
|
||||
* parses the string representation as if it were an
|
||||
* <code>http</code> specification. Most URL protocol families have a
|
||||
* {@code http} specification. Most URL protocol families have a
|
||||
* similar parsing. A stream protocol handler for a protocol that has
|
||||
* a different syntax must override this routine.
|
||||
*
|
||||
* @param u the <code>URL</code> to receive the result of parsing
|
||||
* @param u the {@code URL} to receive the result of parsing
|
||||
* the spec.
|
||||
* @param spec the <code>String</code> representing the URL that
|
||||
* @param spec the {@code String} representing the URL that
|
||||
* must be parsed.
|
||||
* @param start the character index at which to begin parsing. This is
|
||||
* just past the '<code>:</code>' (if there is one) that
|
||||
* just past the '{@code :}' (if there is one) that
|
||||
* specifies the determination of the protocol name.
|
||||
* @param limit the character position to stop parsing at. This is the
|
||||
* end of the string or the position of the
|
||||
* "<code>#</code>" character, if present. All information
|
||||
* "{@code #}" character, if present. All information
|
||||
* after the sharp sign indicates an anchor.
|
||||
*/
|
||||
protected void parseURL(URL u, String spec, int start, int limit) {
|
||||
@ -307,7 +307,7 @@ public abstract class URLStreamHandler {
|
||||
/**
|
||||
* Returns the default port for a URL parsed by this handler. This method
|
||||
* is meant to be overidden by handlers with default port numbers.
|
||||
* @return the default port for a <code>URL</code> parsed by this handler.
|
||||
* @return the default port for a {@code URL} parsed by this handler.
|
||||
* @since 1.3
|
||||
*/
|
||||
protected int getDefaultPort() {
|
||||
@ -321,7 +321,7 @@ public abstract class URLStreamHandler {
|
||||
* guaranteed by the fact that it is only called by java.net.URL class.
|
||||
* @param u1 a URL object
|
||||
* @param u2 a URL object
|
||||
* @return <tt>true</tt> if the two urls are
|
||||
* @return {@code true} if the two urls are
|
||||
* considered equal, ie. they refer to the same
|
||||
* fragment in the same file.
|
||||
* @since 1.3
|
||||
@ -338,7 +338,7 @@ public abstract class URLStreamHandler {
|
||||
* other protocols that have different requirements for hashCode
|
||||
* calculation.
|
||||
* @param u a URL object
|
||||
* @return an <tt>int</tt> suitable for hash table indexing
|
||||
* @return an {@code int} suitable for hash table indexing
|
||||
* @since 1.3
|
||||
*/
|
||||
protected int hashCode(URL u) {
|
||||
@ -420,7 +420,7 @@ public abstract class URLStreamHandler {
|
||||
* will result in a null return.
|
||||
*
|
||||
* @param u a URL object
|
||||
* @return an <code>InetAddress</code> representing the host
|
||||
* @return an {@code InetAddress} representing the host
|
||||
* IP address.
|
||||
* @since 1.3
|
||||
*/
|
||||
@ -447,8 +447,8 @@ public abstract class URLStreamHandler {
|
||||
* Compares the host components of two URLs.
|
||||
* @param u1 the URL of the first host to compare
|
||||
* @param u2 the URL of the second host to compare
|
||||
* @return <tt>true</tt> if and only if they
|
||||
* are equal, <tt>false</tt> otherwise.
|
||||
* @return {@code true} if and only if they
|
||||
* are equal, {@code false} otherwise.
|
||||
* @since 1.3
|
||||
*/
|
||||
protected boolean hostsEqual(URL u1, URL u2) {
|
||||
@ -465,11 +465,11 @@ public abstract class URLStreamHandler {
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a <code>URL</code> of a specific protocol to a
|
||||
* <code>String</code>.
|
||||
* Converts a {@code URL} of a specific protocol to a
|
||||
* {@code String}.
|
||||
*
|
||||
* @param u the URL.
|
||||
* @return a string representation of the <code>URL</code> argument.
|
||||
* @return a string representation of the {@code URL} argument.
|
||||
*/
|
||||
protected String toExternalForm(URL u) {
|
||||
|
||||
@ -508,7 +508,7 @@ public abstract class URLStreamHandler {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the fields of the <code>URL</code> argument to the indicated values.
|
||||
* Sets the fields of the {@code URL} argument to the indicated values.
|
||||
* Only classes derived from URLStreamHandler are able
|
||||
* to use this method to set the values of the URL fields.
|
||||
*
|
||||
@ -538,7 +538,7 @@ public abstract class URLStreamHandler {
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the fields of the <code>URL</code> argument to the indicated values.
|
||||
* Sets the fields of the {@code URL} argument to the indicated values.
|
||||
* Only classes derived from URLStreamHandler are able
|
||||
* to use this method to set the values of the URL fields.
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 1999, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -26,11 +26,11 @@
|
||||
package java.net;
|
||||
|
||||
/**
|
||||
* This interface defines a factory for <code>URL</code> stream
|
||||
* This interface defines a factory for {@code URL} stream
|
||||
* protocol handlers.
|
||||
* <p>
|
||||
* It is used by the <code>URL</code> class to create a
|
||||
* <code>URLStreamHandler</code> for a specific protocol.
|
||||
* It is used by the {@code URL} class to create a
|
||||
* {@code URLStreamHandler} for a specific protocol.
|
||||
*
|
||||
* @author Arthur van Hoff
|
||||
* @see java.net.URL
|
||||
@ -39,12 +39,12 @@ package java.net;
|
||||
*/
|
||||
public interface URLStreamHandlerFactory {
|
||||
/**
|
||||
* Creates a new <code>URLStreamHandler</code> instance with the specified
|
||||
* Creates a new {@code URLStreamHandler} instance with the specified
|
||||
* protocol.
|
||||
*
|
||||
* @param protocol the protocol ("<code>ftp</code>",
|
||||
* "<code>http</code>", "<code>nntp</code>", etc.).
|
||||
* @return a <code>URLStreamHandler</code> for the specific protocol.
|
||||
* @param protocol the protocol ("{@code ftp}",
|
||||
* "{@code http}", "{@code nntp}", etc.).
|
||||
* @return a {@code URLStreamHandler} for the specific protocol.
|
||||
* @see java.net.URLStreamHandler
|
||||
*/
|
||||
URLStreamHandler createURLStreamHandler(String protocol);
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -38,7 +38,7 @@ class UnknownHostException extends IOException {
|
||||
private static final long serialVersionUID = -4639126076052875403L;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>UnknownHostException</code> with the
|
||||
* Constructs a new {@code UnknownHostException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param host the detail message.
|
||||
@ -48,7 +48,7 @@ class UnknownHostException extends IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new <code>UnknownHostException</code> with no detail
|
||||
* Constructs a new {@code UnknownHostException} with no detail
|
||||
* message.
|
||||
*/
|
||||
public UnknownHostException() {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1995, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -40,14 +40,14 @@ public class UnknownServiceException extends IOException {
|
||||
private static final long serialVersionUID = -4169033248853639508L;
|
||||
|
||||
/**
|
||||
* Constructs a new <code>UnknownServiceException</code> with no
|
||||
* Constructs a new {@code UnknownServiceException} with no
|
||||
* detail message.
|
||||
*/
|
||||
public UnknownServiceException() {
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs a new <code>UnknownServiceException</code> with the
|
||||
* Constructs a new {@code UnknownServiceException} with the
|
||||
* specified detail message.
|
||||
*
|
||||
* @param msg the detail message.
|
||||
|
||||
161
jdk/src/share/classes/java/net/package-info.java
Normal file
161
jdk/src/share/classes/java/net/package-info.java
Normal file
@ -0,0 +1,161 @@
|
||||
/*
|
||||
* Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation. Oracle designates this
|
||||
* particular file as subject to the "Classpath" exception as provided
|
||||
* by Oracle in the LICENSE file that accompanied this code.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Provides the classes for implementing networking applications.
|
||||
*
|
||||
* <p> The java.net package can be roughly divided in two sections:</p>
|
||||
* <ul>
|
||||
* <li><p><i>A Low Level API</i>, which deals with the
|
||||
* following abstractions:</p>
|
||||
* <ul>
|
||||
* <li><p><i>Addresses</i>, which are networking identifiers,
|
||||
* like IP addresses.</p></li>
|
||||
* <li><p><i>Sockets</i>, which are basic bidirectional data communication
|
||||
* mechanisms.</p></li>
|
||||
* <li><p><i>Interfaces</i>, which describe network interfaces. </p></li>
|
||||
* </ul></li>
|
||||
* <li> <p><i>A High Level API</i>, which deals with the following
|
||||
* abstractions:</p>
|
||||
* <ul>
|
||||
* <li><p><i>URIs</i>, which represent
|
||||
* Universal Resource Identifiers.</p></li>
|
||||
* <li><p><i>URLs</i>, which represent
|
||||
* Universal Resource Locators.</p></li>
|
||||
* <li><p><i>Connections</i>, which represents connections to the resource
|
||||
* pointed to by <i>URLs</i>.</p></li>
|
||||
* </ul></li>
|
||||
* </ul>
|
||||
* <h2>Addresses</h2>
|
||||
* <p>Addresses are used throughout the java.net APIs as either host
|
||||
* identifiers, or socket endpoint identifiers.</p>
|
||||
* <p>The {@link java.net.InetAddress} class is the abstraction representing an
|
||||
* IP (Internet Protocol) address. It has two subclasses:
|
||||
* <ul>
|
||||
* <li>{@link java.net.Inet4Address} for IPv4 addresses.</li>
|
||||
* <li>{@link java.net.Inet6Address} for IPv6 addresses.</li>
|
||||
* </ul>
|
||||
* <p>But, in most cases, there is no need to deal directly with the subclasses,
|
||||
* as the InetAddress abstraction should cover most of the needed
|
||||
* functionality.</p>
|
||||
* <h3><b>About IPv6</b></h3>
|
||||
* <p>Not all systems have support for the IPv6 protocol, and while the Java
|
||||
* networking stack will attempt to detect it and use it transparently when
|
||||
* available, it is also possible to disable its use with a system property.
|
||||
* In the case where IPv6 is not available, or explicitly disabled,
|
||||
* Inet6Address are not valid arguments for most networking operations any
|
||||
* more. While methods like {@link java.net.InetAddress#getByName} are
|
||||
* guaranteed not to return an Inet6Address when looking up host names, it
|
||||
* is possible, by passing literals, to create such an object. In which
|
||||
* case, most methods, when called with an Inet6Address will throw an
|
||||
* Exception.</p>
|
||||
* <h2>Sockets</h2>
|
||||
* <p>Sockets are means to establish a communication link between machines over
|
||||
* the network. The java.net package provides 4 kinds of Sockets:</p>
|
||||
* <ul>
|
||||
* <li>{@link java.net.Socket} is a TCP client API, and will typically
|
||||
* be used to {@linkplain java.net.Socket#connect(SocketAddress)
|
||||
* connect} to a remote host.</li>
|
||||
* <li>{@link java.net.ServerSocket} is a TCP server API, and will
|
||||
* typically {@linkplain java.net.ServerSocket#accept accept}
|
||||
* connections from client sockets.</li>
|
||||
* <li>{@link java.net.DatagramSocket} is a UDP endpoint API and is used
|
||||
* to {@linkplain java.net.DatagramSocket#send send} and
|
||||
* {@linkplain java.net.DatagramSocket#receive receive}
|
||||
* {@linkplain java.net.DatagramPacket datagram packets}.</li>
|
||||
* <li>{@link java.net.MulticastSocket} is a subclass of
|
||||
* {@code DatagramSocket} used when dealing with multicast
|
||||
* groups.</li>
|
||||
* </ul>
|
||||
* <p>Sending and receiving with TCP sockets is done through InputStreams and
|
||||
* OutputStreams which can be obtained via the
|
||||
* {@link java.net.Socket#getInputStream} and
|
||||
* {@link java.net.Socket#getOutputStream} methods.</p>
|
||||
* <h2>Interfaces</h2>
|
||||
* <p>The {@link java.net.NetworkInterface} class provides APIs to browse and
|
||||
* query all the networking interfaces (e.g. ethernet connection or PPP
|
||||
* endpoint) of the local machine. It is through that class that you can
|
||||
* check if any of the local interfaces is configured to support IPv6.</p>
|
||||
* <p>Note, all conforming implementations must support at least one
|
||||
* {@code NetworkInterface} object, which must either be connected to a
|
||||
* network, or be a "loopback" interface that can only communicate with
|
||||
* entities on the same machine.</p>
|
||||
*
|
||||
* <h2>High level API</h2>
|
||||
* <p>A number of classes in the java.net package do provide for a much higher
|
||||
* level of abstraction and allow for easy access to resources on the
|
||||
* network. The classes are:
|
||||
* <ul>
|
||||
* <li>{@link java.net.URI} is the class representing a
|
||||
* Universal Resource Identifier, as specified in RFC 2396.
|
||||
* As the name indicates, this is just an Identifier and doesn't
|
||||
* provide directly the means to access the resource.</li>
|
||||
* <li>{@link java.net.URL} is the class representing a
|
||||
* Universal Resource Locator, which is both an older concept for
|
||||
* URIs and a means to access the resources.</li>
|
||||
* <li>{@link java.net.URLConnection} is created from a URL and is the
|
||||
* communication link used to access the resource pointed by the
|
||||
* URL. This abstract class will delegate most of the work to the
|
||||
* underlying protocol handlers like http or https.</li>
|
||||
* <li>{@link java.net.HttpURLConnection} is a subclass of URLConnection
|
||||
* and provides some additional functionalities specific to the
|
||||
* HTTP protocol.</li>
|
||||
* </ul>
|
||||
* <p>The recommended usage is to use {@link java.net.URI} to identify
|
||||
* resources, then convert it into a {@link java.net.URL} when it is time to
|
||||
* access the resource. From that URL, you can either get the
|
||||
* {@link java.net.URLConnection} for fine control, or get directly the
|
||||
* InputStream.<p>
|
||||
* <p>Here is an example:</p>
|
||||
* <p><pre>
|
||||
* URI uri = new URI("http://java.sun.com/");
|
||||
* URL url = uri.toURL();
|
||||
* InputStream in = url.openStream();
|
||||
* </pre>
|
||||
* <h2>Protocol Handlers</h2>
|
||||
* As mentioned, URL and URLConnection rely on protocol handlers which must be
|
||||
* present, otherwise an Exception is thrown. This is the major difference with
|
||||
* URIs which only identify resources, and therefore don't need to have access
|
||||
* to the protocol handler. So, while it is possible to create an URI with any
|
||||
* kind of protocol scheme (e.g. {@code myproto://myhost.mydomain/resource/}),
|
||||
* a similar URL will try to instantiate the handler for the specified protocol;
|
||||
* if it doesn't exist an exception will be thrown.
|
||||
* <p>By default the protocol handlers are loaded dynamically from the default
|
||||
* location. It is, however, possible to add to the search path by setting
|
||||
* the {@code java.protocol.handler.pkgs} system property. For instance if
|
||||
* it is set to {@code myapp.protocols}, then the URL code will try, in the
|
||||
* case of http, first to load {@code myapp.protocols.http.Handler}, then,
|
||||
* if this fails, {@code http.Handler} from the default location.<p>
|
||||
* <p>Note that the Handler class <b>has to</b> be a subclass of the abstract
|
||||
* class {@link java.net.URLStreamHandler}.</p>
|
||||
* <h2>Additional Specification</h2>
|
||||
* <ul>
|
||||
* <li><a href="doc-files/net-properties.html">
|
||||
* Networking System Properties</a></li>
|
||||
* </ul>
|
||||
*
|
||||
* @since JDK1.0
|
||||
*/
|
||||
package java.net;
|
||||
@ -1,112 +0,0 @@
|
||||
<!--
|
||||
Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
|
||||
This code is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License version 2 only, as
|
||||
published by the Free Software Foundation. Oracle designates this
|
||||
particular file as subject to the "Classpath" exception as provided
|
||||
by Oracle in the LICENSE file that accompanied this code.
|
||||
|
||||
This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
version 2 for more details (a copy is included in the LICENSE file that
|
||||
accompanied this code).
|
||||
|
||||
You should have received a copy of the GNU General Public License version
|
||||
2 along with this work; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
|
||||
Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
or visit www.oracle.com if you need additional information or have any
|
||||
questions.
|
||||
-->
|
||||
|
||||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
||||
<html>
|
||||
<body bgcolor="white">
|
||||
|
||||
Provides the classes for implementing networking applications.
|
||||
|
||||
<p> The java.net package can be roughly divided in two sections:</p>
|
||||
<ul>
|
||||
<li> <p><i>A Low Level API</i>, which deals with the following abstractions:</p>
|
||||
<ul>
|
||||
<li><p><i>Addresses</i>, which are networking identifiers, like IP addresses.</p></li>
|
||||
<li><p><i>Sockets</i>, which are basic bidirectional data communication mechanisms.</p></li>
|
||||
<li><p><i>Interfaces</i>, which describe network interfaces. </p></li>
|
||||
</ul></li>
|
||||
<li> <p><i>A High Level API</i>, which deals with the following abstractions:</p>
|
||||
<ul>
|
||||
<li><p><i>URIs</i>, which represent Universal Resource Identifiers.</p></li>
|
||||
<li><p><i>URLs</i>, which represent Universal Resource Locators.</p></li>
|
||||
<li><p><i>Connections</i>, which represents connections to the resource pointed to by <i>URLs</i>.</p></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<h2>Addresses</h2>
|
||||
<p>Addresses are used throughout the java.net APIs as either host identifiers, or socket endpoint identifiers.</p>
|
||||
<p>The {@link java.net.InetAddress} class is the abstraction representing an IP (Internet Protocol) address. It has two subclasses:
|
||||
<ul>
|
||||
<li>{@link java.net.Inet4Address} for IPv4 addresses.</li>
|
||||
<li>{@link java.net.Inet6Address} for IPv6 addresses.</li>
|
||||
</ul>
|
||||
<p>But, in most cases, there is no need to deal directly with the subclasses, as the InetAddress abstraction should cover most of the needed functionality.</p>
|
||||
<h3><b>About IPv6</b></h3>
|
||||
<p>Not all systems have support for the IPv6 protocol, and while the Java networking stack will attempt to detect it and use it transparently when available, it is also possible to disable its use with a system property. In the case where IPv6 is not available, or explicitly disabled, Inet6Address are not valid arguments for most networking operations any more. While methods like {@link java.net.InetAddress#getByName} are guaranteed not to return an Inet6Address when looking up host names, it is possible, by passing literals, to create such an object. In which case, most methods, when called with an Inet6Address will throw an Exception.</p>
|
||||
<h2>Sockets</h2>
|
||||
<p>Sockets are means to establish a communication link between machines over the network. The java.net package provides 4 kinds of Sockets:</p>
|
||||
<ul>
|
||||
<li>{@link java.net.Socket} is a TCP client API, and will typically be used to {@linkplain java.net.Socket#connect(SocketAddress) connect} to a remote host.</li>
|
||||
<li>{@link java.net.ServerSocket} is a TCP server API, and will typically {@linkplain java.net.ServerSocket#accept accept} connections from client sockets.</li>
|
||||
<li>{@link java.net.DatagramSocket} is a UDP endpoint API and is used to {@linkplain java.net.DatagramSocket#send send} and {@linkplain java.net.DatagramSocket#receive receive} {@linkplain java.net.DatagramPacket datagram packets}.</li>
|
||||
<li>{@link java.net.MulticastSocket} is a subclass of {@code DatagramSocket} used when dealing with multicast groups.</li>
|
||||
</ul>
|
||||
<p>Sending and receiving with TCP sockets is done through InputStreams and OutputStreams which can be obtained via the {@link java.net.Socket#getInputStream} and {@link java.net.Socket#getOutputStream} methods.</p>
|
||||
<h2>Interfaces</h2>
|
||||
<p>The {@link java.net.NetworkInterface} class provides APIs to browse and query all the networking interfaces (e.g. ethernet connection or PPP endpoint) of the local machine. It is through that class that you can check if any of the local interfaces is configured to support IPv6.</p>
|
||||
<p>Note, all conforming implementations must support at least one {@code NetworkInterface} object, which must either be connected to a network, or be a "loopback" interface that can only communicate with entities on the same machine.</p>
|
||||
|
||||
<h2>High level API</h2>
|
||||
<p>A number of classes in the java.net package do provide for a much higher level of abstraction and allow for easy access to resources on the network. The classes are:
|
||||
<ul>
|
||||
<li>{@link java.net.URI} is the class representing a Universal Resource Identifier, as specified in RFC 2396. As the name indicates, this is just an Identifier and doesn't provide directly the means to access the resource.</li>
|
||||
<li>{@link java.net.URL} is the class representing a Universal Resource Locator, which is both an older concept for URIs and a means to access the resources.</li>
|
||||
<li>{@link java.net.URLConnection} is created from a URL and is the communication link used to access the resource pointed by the URL. This abstract class will delegate most of the work to the underlying protocol handlers like http or https.</li>
|
||||
<li>{@link java.net.HttpURLConnection} is a subclass of URLConnection and provides some additional functionalities specific to the HTTP protocol.</li>
|
||||
</ul>
|
||||
<p>The recommended usage is to use {@link java.net.URI} to identify resources, then convert it into a {@link java.net.URL} when it is time to access the resource. From that URL, you can either get the {@link java.net.URLConnection} for fine control, or get directly the InputStream.<p>
|
||||
<p>Here is an example:</p>
|
||||
<p><code>
|
||||
URI uri = new URI("http://java.sun.com/");<br>
|
||||
URL url = uri.toURL();<br>
|
||||
InputStream in = url.openStream();
|
||||
</code></p>
|
||||
<h2>Protocol Handlers</h2>
|
||||
As mentioned, URL and URLConnection rely on protocol handlers which must be present, otherwise an Exception is thrown. This is the major difference with URIs which only identify resources, and therefore don't need to have access to the protocol handler. So, while it is possible to create an URI with any kind of protocol scheme (e.g. <code>myproto://myhost.mydomain/resource/</code>), a similar URL will try to instantiate the handler for the specified protocol; if it doesn't exist an exception will be thrown.</p>
|
||||
<p>By default the protocol handlers are loaded dynamically from the default location. It is, however, possible to add to the search path by setting the <code>java.protocol.handler.pkgs</code> system property. For instance if it is set to <code>myapp.protocols</code>, then the URL code will try, in the case of http, first to load <code>myapp.protocols.http.Handler</code>, then, if this fails, <code>http.Handler</code> from the default location.<p>
|
||||
<p>Note that the Handler class <b>has to</b> be a subclass of the abstract class {@link java.net.URLStreamHandler}.</p>
|
||||
<h2>Additional Specification</h2>
|
||||
<ul>
|
||||
<li><a href="doc-files/net-properties.html">Networking System Properties</a></li>
|
||||
</ul>
|
||||
<!--
|
||||
<h2>Package Specification</h2>
|
||||
|
||||
##### FILL IN ANY SPECS NEEDED BY JAVA COMPATIBILITY KIT #####
|
||||
<ul>
|
||||
<li><a href="">##### REFER TO ANY FRAMEMAKER SPECIFICATION HERE #####</a>
|
||||
</ul>
|
||||
|
||||
<h2>Related Documentation</h2>
|
||||
|
||||
For overviews, tutorials, examples, guides, and tool documentation, please see:
|
||||
<ul>
|
||||
<li><a href="">##### REFER TO NON-SPEC DOCUMENTATION HERE #####</a>
|
||||
</ul>
|
||||
|
||||
-->
|
||||
|
||||
@since JDK1.0
|
||||
</body>
|
||||
</html>
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -31,7 +31,7 @@
|
||||
* <a name="channels"></a>
|
||||
*
|
||||
* <blockquote><table cellspacing=1 cellpadding=0 summary="Lists channels and their descriptions">
|
||||
* <tr><th><p align="left">Channels</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">Channels</th><th align="left">Description</th></tr>
|
||||
* <tr><td valign=top><tt><i>{@link java.nio.channels.Channel}</i></tt></td>
|
||||
* <td>A nexus for I/O operations</td></tr>
|
||||
* <tr><td valign=top><tt> <i>{@link java.nio.channels.ReadableByteChannel}</i></tt></td>
|
||||
@ -110,7 +110,7 @@
|
||||
* write them to a given writable byte channel.
|
||||
*
|
||||
* <blockquote><table cellspacing=1 cellpadding=0 summary="Lists file channels and their descriptions">
|
||||
* <tr><th><p align="left">File channels</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">File channels</th><th align="left">Description</th></tr>
|
||||
* <tr><td valign=top><tt>{@link java.nio.channels.FileChannel}</tt></td>
|
||||
* <td>Reads, writes, maps, and manipulates files</td></tr>
|
||||
* <tr><td valign=top><tt>{@link java.nio.channels.FileLock}</tt></td>
|
||||
@ -138,7 +138,7 @@
|
||||
*
|
||||
* <a name="multiplex"></a>
|
||||
* <blockquote><table cellspacing=1 cellpadding=0 summary="Lists multiplexed, non-blocking channels and their descriptions">
|
||||
* <tr><th><p align="left">Multiplexed, non-blocking I/O</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">Multiplexed, non-blocking I/O</th><th align="left"><p>Description</th></tr>
|
||||
* <tr><td valign=top><tt>{@link java.nio.channels.SelectableChannel}</tt></td>
|
||||
* <td>A channel that can be multiplexed</td></tr>
|
||||
* <tr><td valign=top><tt> {@link java.nio.channels.DatagramChannel}</tt></td>
|
||||
@ -225,7 +225,7 @@
|
||||
* <a name="async"></a>
|
||||
*
|
||||
* <blockquote><table cellspacing=1 cellpadding=0 summary="Lists asynchronous channels and their descriptions">
|
||||
* <tr><th><p align="left">Asynchronous I/O</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">Asynchronous I/O</th><th align="left">Description</th></tr>
|
||||
* <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousFileChannel}</tt></td>
|
||||
* <td>An asynchronous channel for reading, writing, and manipulating a file</td></tr>
|
||||
* <tr><td valign=top><tt>{@link java.nio.channels.AsynchronousSocketChannel}</tt></td>
|
||||
|
||||
@ -41,7 +41,7 @@ import java.util.Arrays;
|
||||
* An engine that can transform a sequence of $itypesPhrase$ into a sequence of
|
||||
* $otypesPhrase$.
|
||||
*
|
||||
* <a name="steps">
|
||||
* <a name="steps"></a>
|
||||
*
|
||||
* <p> The input $itype$ sequence is provided in a $itype$ buffer or a series
|
||||
* of such buffers. The output $otype$ sequence is written to a $otype$ buffer
|
||||
@ -76,22 +76,22 @@ import java.util.Arrays;
|
||||
* examine this object and fill the input buffer, flush the output buffer, or
|
||||
* attempt to recover from $a$ $coding$ error, as appropriate, and try again.
|
||||
*
|
||||
* <a name="ce">
|
||||
* <a name="ce"></a>
|
||||
*
|
||||
* <p> There are two general types of $coding$ errors. If the input $itype$
|
||||
* sequence is $notLegal$ then the input is considered <i>malformed</i>. If
|
||||
* the input $itype$ sequence is legal but cannot be mapped to a valid
|
||||
* $outSequence$ then an <i>unmappable character</i> has been encountered.
|
||||
*
|
||||
* <a name="cae">
|
||||
* <a name="cae"></a>
|
||||
*
|
||||
* <p> How $a$ $coding$ error is handled depends upon the action requested for
|
||||
* that type of error, which is described by an instance of the {@link
|
||||
* CodingErrorAction} class. The possible error actions are to {@link
|
||||
* CodingErrorAction#IGNORE </code>ignore<code>} the erroneous input, {@link
|
||||
* CodingErrorAction#REPORT </code>report<code>} the error to the invoker via
|
||||
* the returned {@link CoderResult} object, or {@link CodingErrorAction#REPLACE
|
||||
* </code>replace<code>} the erroneous input with the current value of the
|
||||
* CodingErrorAction} class. The possible error actions are to {@linkplain
|
||||
* CodingErrorAction#IGNORE ignore} the erroneous input, {@linkplain
|
||||
* CodingErrorAction#REPORT report} the error to the invoker via
|
||||
* the returned {@link CoderResult} object, or {@linkplain CodingErrorAction#REPLACE
|
||||
* replace} the erroneous input with the current value of the
|
||||
* replacement $replTypeName$. The replacement
|
||||
*
|
||||
#if[encoder]
|
||||
@ -106,7 +106,7 @@ import java.util.Arrays;
|
||||
* replaceWith} method.
|
||||
*
|
||||
* <p> The default action for malformed-input and unmappable-character errors
|
||||
* is to {@link CodingErrorAction#REPORT </code>report<code>} them. The
|
||||
* is to {@linkplain CodingErrorAction#REPORT report} them. The
|
||||
* malformed-input error action may be changed via the {@link
|
||||
* #onMalformedInput(CodingErrorAction) onMalformedInput} method; the
|
||||
* unmappable-character action may be changed via the {@link
|
||||
@ -177,7 +177,7 @@ public abstract class Charset$Coder$ {
|
||||
* @param replacement
|
||||
* The initial replacement; must not be <tt>null</tt>, must have
|
||||
* non-zero length, must not be longer than max$ItypesPerOtype$,
|
||||
* and must be {@link #isLegalReplacement </code>legal<code>}
|
||||
* and must be {@linkplain #isLegalReplacement legal}
|
||||
*
|
||||
* @throws IllegalArgumentException
|
||||
* If the preconditions on the parameters do not hold
|
||||
@ -276,7 +276,7 @@ public abstract class Charset$Coder$ {
|
||||
* The new replacement; must not be <tt>null</tt>, must have
|
||||
* non-zero length, must not be longer than the value returned by
|
||||
* the {@link #max$ItypesPerOtype$() max$ItypesPerOtype$} method, and
|
||||
* must be {@link #isLegalReplacement </code>legal<code>}
|
||||
* must be {@link #isLegalReplacement legal}
|
||||
#end[encoder]
|
||||
*
|
||||
* @return This $coder$
|
||||
@ -495,24 +495,24 @@ public abstract class Charset$Coder$ {
|
||||
* typically done by draining any $code$d $otype$s from the output
|
||||
* buffer. </p></li>
|
||||
*
|
||||
* <li><p> A {@link CoderResult#malformedForLength
|
||||
* </code>malformed-input<code>} result indicates that a malformed-input
|
||||
* <li><p> A {@linkplain CoderResult#malformedForLength
|
||||
* malformed-input} result indicates that a malformed-input
|
||||
* error has been detected. The malformed $itype$s begin at the input
|
||||
* buffer's (possibly incremented) position; the number of malformed
|
||||
* $itype$s may be determined by invoking the result object's {@link
|
||||
* CoderResult#length() length} method. This case applies only if the
|
||||
* {@link #onMalformedInput </code>malformed action<code>} of this $coder$
|
||||
* {@linkplain #onMalformedInput malformed action} of this $coder$
|
||||
* is {@link CodingErrorAction#REPORT}; otherwise the malformed input
|
||||
* will be ignored or replaced, as requested. </p></li>
|
||||
*
|
||||
* <li><p> An {@link CoderResult#unmappableForLength
|
||||
* </code>unmappable-character<code>} result indicates that an
|
||||
* <li><p> An {@linkplain CoderResult#unmappableForLength
|
||||
* unmappable-character} result indicates that an
|
||||
* unmappable-character error has been detected. The $itype$s that
|
||||
* $code$ the unmappable character begin at the input buffer's (possibly
|
||||
* incremented) position; the number of such $itype$s may be determined
|
||||
* by invoking the result object's {@link CoderResult#length() length}
|
||||
* method. This case applies only if the {@link #onUnmappableCharacter
|
||||
* </code>unmappable action<code>} of this $coder$ is {@link
|
||||
* method. This case applies only if the {@linkplain #onUnmappableCharacter
|
||||
* unmappable action} of this $coder$ is {@link
|
||||
* CodingErrorAction#REPORT}; otherwise the unmappable character will be
|
||||
* ignored or replaced, as requested. </p></li>
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -65,7 +65,7 @@ import sun.security.action.GetPropertyAction;
|
||||
* concurrent threads.
|
||||
*
|
||||
*
|
||||
* <a name="names"><a name="charenc">
|
||||
* <a name="names"></a><a name="charenc"></a>
|
||||
* <h2>Charset names</h2>
|
||||
*
|
||||
* <p> Charsets are named by strings composed of the following characters:
|
||||
@ -111,21 +111,17 @@ import sun.security.action.GetPropertyAction;
|
||||
* The aliases of a charset are returned by the {@link #aliases() aliases}
|
||||
* method.
|
||||
*
|
||||
* <a name="hn">
|
||||
*
|
||||
* <p> Some charsets have an <i>historical name</i> that is defined for
|
||||
* compatibility with previous versions of the Java platform. A charset's
|
||||
* <p><a name="hn">Some charsets have an <i>historical name</i> that is defined for
|
||||
* compatibility with previous versions of the Java platform.</a> A charset's
|
||||
* historical name is either its canonical name or one of its aliases. The
|
||||
* historical name is returned by the <tt>getEncoding()</tt> methods of the
|
||||
* {@link java.io.InputStreamReader#getEncoding InputStreamReader} and {@link
|
||||
* java.io.OutputStreamWriter#getEncoding OutputStreamWriter} classes.
|
||||
*
|
||||
* <a name="iana">
|
||||
*
|
||||
* <p> If a charset listed in the <a
|
||||
* <p><a name="iana">If a charset listed in the <a
|
||||
* href="http://www.iana.org/assignments/character-sets"><i>IANA Charset
|
||||
* Registry</i></a> is supported by an implementation of the Java platform then
|
||||
* its canonical name must be the name listed in the registry. Many charsets
|
||||
* its canonical name must be the name listed in the registry.</a> Many charsets
|
||||
* are given more than one name in the registry, in which case the registry
|
||||
* identifies one of the names as <i>MIME-preferred</i>. If a charset has more
|
||||
* than one registry name then its canonical name must be the MIME-preferred
|
||||
@ -142,15 +138,15 @@ import sun.security.action.GetPropertyAction;
|
||||
*
|
||||
* <h2>Standard charsets</h2>
|
||||
*
|
||||
* <a name="standard">
|
||||
*
|
||||
* <p> Every implementation of the Java platform is required to support the
|
||||
* following standard charsets. Consult the release documentation for your
|
||||
*
|
||||
* <p><a name="standard">Every implementation of the Java platform is required to support the
|
||||
* following standard charsets.</a> Consult the release documentation for your
|
||||
* implementation to see if any other charsets are supported. The behavior
|
||||
* of such optional charsets may differ between implementations.
|
||||
*
|
||||
* <blockquote><table width="80%" summary="Description of standard charsets">
|
||||
* <tr><th><p align="left">Charset</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">Charset</th><th align="left">Description</th></tr>
|
||||
* <tr><td valign=top><tt>US-ASCII</tt></td>
|
||||
* <td>Seven-bit ASCII, a.k.a. <tt>ISO646-US</tt>,
|
||||
* a.k.a. the Basic Latin block of the Unicode character set</td></tr>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -42,14 +42,27 @@ public class MalformedInputException
|
||||
|
||||
private int inputLength;
|
||||
|
||||
/**
|
||||
* Constructs an {@code MalformedInputException} with the given
|
||||
* length.
|
||||
* @param inputLength the length of the input
|
||||
*/
|
||||
public MalformedInputException(int inputLength) {
|
||||
this.inputLength = inputLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the length of the input.
|
||||
* @return the length of the input
|
||||
*/
|
||||
public int getInputLength() {
|
||||
return inputLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message.
|
||||
* @return the message
|
||||
*/
|
||||
public String getMessage() {
|
||||
return "Input length = " + inputLength;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2001, 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -42,14 +42,27 @@ public class UnmappableCharacterException
|
||||
|
||||
private int inputLength;
|
||||
|
||||
/**
|
||||
* Constructs an {@code UnmappableCharacterException} with the
|
||||
* given length.
|
||||
* @param inputLength the length of the input
|
||||
*/
|
||||
public UnmappableCharacterException(int inputLength) {
|
||||
this.inputLength = inputLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the length of the input.
|
||||
* @return the length of the input
|
||||
*/
|
||||
public int getInputLength() {
|
||||
return inputLength;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the message.
|
||||
* @return the message
|
||||
*/
|
||||
public String getMessage() {
|
||||
return "Input length = " + inputLength;
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -27,7 +27,7 @@
|
||||
* Interfaces and classes providing access to file and file system attributes.
|
||||
*
|
||||
* <blockquote><table cellspacing=1 cellpadding=0 summary="Attribute views">
|
||||
* <tr><th><p align="left">Attribute views</p></th><th><p align="left">Description</p></th></tr>
|
||||
* <tr><th align="left">Attribute views</th><th align="left">Description</th></tr>
|
||||
* <tr><td valign=top><tt><i>{@link java.nio.file.attribute.AttributeView}</i></tt></td>
|
||||
* <td>Can read or update non-opaque values associated with objects in a file system</td></tr>
|
||||
* <tr><td valign=top><tt> <i>{@link java.nio.file.attribute.FileAttributeView}</i></tt></td>
|
||||
@ -38,7 +38,7 @@
|
||||
* <td>Can read or update POSIX defined file attributes</td></tr>
|
||||
* <tr><td valign=top><tt> <i>{@link java.nio.file.attribute.DosFileAttributeView} </i></tt></td>
|
||||
* <td>Can read or update FAT file attributes</td></tr>
|
||||
* <tr><td valign=top><tt>  <i>{@link java.nio.file.attribute.FileOwnerAttributeView} </i></tt></td>
|
||||
* <tr><td valign=top><tt> <i>{@link java.nio.file.attribute.FileOwnerAttributeView} </i></tt></td>
|
||||
* <td>Can read or update the owner of a file</td></tr>
|
||||
* <tr><td valign=top><tt> <i>{@link java.nio.file.attribute.AclFileAttributeView} </i></tt></td>
|
||||
* <td>Can read or update Access Control Lists</td></tr>
|
||||
@ -86,14 +86,14 @@
|
||||
*
|
||||
* <ul>
|
||||
*
|
||||
* <p><li> The {@link java.nio.file.attribute.UserPrincipal} and
|
||||
* <li> The {@link java.nio.file.attribute.UserPrincipal} and
|
||||
* {@link java.nio.file.attribute.GroupPrincipal} interfaces represent an
|
||||
* identity or group identity. </li>
|
||||
*
|
||||
* <p><li> The {@link java.nio.file.attribute.UserPrincipalLookupService}
|
||||
* <li> The {@link java.nio.file.attribute.UserPrincipalLookupService}
|
||||
* interface defines methods to lookup user or group principals. </li>
|
||||
*
|
||||
* <p><li> The {@link java.nio.file.attribute.FileAttribute} interface
|
||||
* <li> The {@link java.nio.file.attribute.FileAttribute} interface
|
||||
* represents the value of an attribute for cases where the attribute value is
|
||||
* required to be set atomically when creating an object in the file system. </li>
|
||||
*
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -33,8 +33,8 @@
|
||||
* package is used by service provider implementors wishing to extend the
|
||||
* platform default provider, or to construct other provider implementations. </p>
|
||||
*
|
||||
* <a name="links"><h3>Symbolic Links</h3></a>
|
||||
* Many operating systems and file systems support for <em>symbolic links</em>.
|
||||
* <h3><a name="links">Symbolic Links</a></h3>
|
||||
* <p> Many operating systems and file systems support for <em>symbolic links</em>.
|
||||
* A symbolic link is a special file that serves as a reference to another file.
|
||||
* For the most part, symbolic links are transparent to applications and
|
||||
* operations on symbolic links are automatically redirected to the <em>target</em>
|
||||
@ -45,8 +45,8 @@
|
||||
* that are semantically close but support for these other types of links is
|
||||
* not included in this package. </p>
|
||||
*
|
||||
* <a name="interop"><h3>Interoperability</h3></a>
|
||||
* The {@link java.io.File} class defines the {@link java.io.File#toPath
|
||||
* <h3><a name="interop">Interoperability</a></h3>
|
||||
* <p> The {@link java.io.File} class defines the {@link java.io.File#toPath
|
||||
* toPath} method to construct a {@link java.nio.file.Path} by converting
|
||||
* the abstract path represented by the {@code java.io.File} object. The resulting
|
||||
* {@code Path} can be used to operate on the same file as the {@code File}
|
||||
@ -55,7 +55,7 @@
|
||||
* and {@code java.io.File} objects. </p>
|
||||
*
|
||||
* <h3>Visibility</h3>
|
||||
* The view of the files and file system provided by classes in this package are
|
||||
* <p> The view of the files and file system provided by classes in this package are
|
||||
* guaranteed to be consistent with other views provided by other instances in the
|
||||
* same Java virtual machine. The view may or may not, however, be consistent with
|
||||
* the view of the file system as seen by other concurrently running programs due
|
||||
@ -65,8 +65,8 @@
|
||||
* or on some other machine. The exact nature of any such inconsistencies are
|
||||
* system-dependent and are therefore unspecified. </p>
|
||||
*
|
||||
* <a name="integrity"><h3>Synchronized I/O File Integrity</h3></a>
|
||||
* The {@link java.nio.file.StandardOpenOption#SYNC SYNC} and {@link
|
||||
* <h3><a name="integrity">Synchronized I/O File Integrity</a></h3>
|
||||
* <p> The {@link java.nio.file.StandardOpenOption#SYNC SYNC} and {@link
|
||||
* java.nio.file.StandardOpenOption#DSYNC DSYNC} options are used when opening a file
|
||||
* to require that updates to the file are written synchronously to the underlying
|
||||
* storage device. In the case of the default provider, and the file resides on
|
||||
@ -83,7 +83,7 @@
|
||||
* specific. </p>
|
||||
*
|
||||
* <h3>General Exceptions</h3>
|
||||
* Unless otherwise noted, passing a {@code null} argument to a constructor
|
||||
* <p> Unless otherwise noted, passing a {@code null} argument to a constructor
|
||||
* or method of any class or interface in this package will cause a {@link
|
||||
* java.lang.NullPointerException NullPointerException} to be thrown. Additionally,
|
||||
* invoking a method with a collection containing a {@code null} element will
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2012, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,21 +50,26 @@ import java.util.Set;
|
||||
* status of certificates with OCSP and CRLs. By default, OCSP is the
|
||||
* preferred mechanism for checking revocation status, with CRLs as the
|
||||
* fallback mechanism. However, this preference can be switched to CRLs with
|
||||
* the {@link Option#PREFER_CRLS PREFER_CRLS} option.
|
||||
* the {@link Option#PREFER_CRLS PREFER_CRLS} option. In addition, the fallback
|
||||
* mechanism can be disabled with the {@link Option#NO_FALLBACK NO_FALLBACK}
|
||||
* option.
|
||||
*
|
||||
* <p>A {@code PKIXRevocationChecker} is obtained by calling the
|
||||
* {@link CertPathValidator#getRevocationChecker getRevocationChecker} method
|
||||
* of a PKIX {@code CertPathValidator}. Additional parameters and options
|
||||
* specific to revocation can be set (by calling {@link #setOCSPResponder}
|
||||
* method for instance). The {@code PKIXRevocationChecker} is added to
|
||||
* a {@code PKIXParameters} object using the
|
||||
* {@link PKIXParameters#addCertPathChecker addCertPathChecker}
|
||||
* specific to revocation can be set (by calling the
|
||||
* {@link #setOcspResponder setOcspResponder} method for instance). The
|
||||
* {@code PKIXRevocationChecker} is added to a {@code PKIXParameters} object
|
||||
* using the {@link PKIXParameters#addCertPathChecker addCertPathChecker}
|
||||
* or {@link PKIXParameters#setCertPathCheckers setCertPathCheckers} method,
|
||||
* and then the {@code PKIXParameters} is passed along with the {@code CertPath}
|
||||
* to be validated to the {@link CertPathValidator#validate validate} method
|
||||
* of a PKIX {@code CertPathValidator}. When supplying a revocation checker in
|
||||
* this manner, it will be used to check revocation irrespective of the setting
|
||||
* of the {@link PKIXParameters#isRevocationEnabled RevocationEnabled} flag.
|
||||
* Similarly, a {@code PKIXRevocationChecker} may be added to a
|
||||
* {@code PKIXBuilderParameters} object for use with a PKIX
|
||||
* {@code CertPathBuilder}.
|
||||
*
|
||||
* <p>Note that when a {@code PKIXRevocationChecker} is added to
|
||||
* {@code PKIXParameters}, it clones the {@code PKIXRevocationChecker};
|
||||
@ -83,6 +88,13 @@ import java.util.Set;
|
||||
* need not synchronize.
|
||||
*
|
||||
* @since 1.8
|
||||
*
|
||||
* @see <a href="http://www.ietf.org/rfc/rfc2560.txt"><i>RFC 2560: X.509
|
||||
* Internet Public Key Infrastructure Online Certificate Status Protocol -
|
||||
* OCSP</i></a>, <br><a
|
||||
* href="http://www.ietf.org/rfc/rfc5280.txt"><i>RFC 5280: Internet X.509
|
||||
* Public Key Infrastructure Certificate and Certificate Revocation List (CRL)
|
||||
* Profile</i></a>
|
||||
*/
|
||||
public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
private URI ocspResponder;
|
||||
@ -101,7 +113,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
*
|
||||
* @param uri the responder URI
|
||||
*/
|
||||
public void setOCSPResponder(URI uri) {
|
||||
public void setOcspResponder(URI uri) {
|
||||
this.ocspResponder = uri;
|
||||
}
|
||||
|
||||
@ -114,7 +126,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
*
|
||||
* @return the responder URI, or {@code null} if not set
|
||||
*/
|
||||
public URI getOCSPResponder() {
|
||||
public URI getOcspResponder() {
|
||||
return ocspResponder;
|
||||
}
|
||||
|
||||
@ -126,7 +138,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
*
|
||||
* @param cert the responder's certificate
|
||||
*/
|
||||
public void setOCSPResponderCert(X509Certificate cert) {
|
||||
public void setOcspResponderCert(X509Certificate cert) {
|
||||
this.ocspResponderCert = cert;
|
||||
}
|
||||
|
||||
@ -140,7 +152,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
*
|
||||
* @return the responder's certificate, or {@code null} if not set
|
||||
*/
|
||||
public X509Certificate getOCSPResponderCert() {
|
||||
public X509Certificate getOcspResponderCert() {
|
||||
return ocspResponderCert;
|
||||
}
|
||||
|
||||
@ -151,7 +163,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
* @param extensions a list of extensions. The list is copied to protect
|
||||
* against subsequent modification.
|
||||
*/
|
||||
public void setOCSPExtensions(List<Extension> extensions)
|
||||
public void setOcspExtensions(List<Extension> extensions)
|
||||
{
|
||||
this.ocspExtensions = (extensions == null)
|
||||
? Collections.<Extension>emptyList()
|
||||
@ -161,10 +173,10 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
/**
|
||||
* Gets the optional OCSP request extensions.
|
||||
*
|
||||
* @return an unmodifiable list of extensions. Returns an empty list if no
|
||||
* @return an unmodifiable list of extensions. The list is empty if no
|
||||
* extensions have been specified.
|
||||
*/
|
||||
public List<Extension> getOCSPExtensions() {
|
||||
public List<Extension> getOcspExtensions() {
|
||||
return Collections.unmodifiableList(ocspExtensions);
|
||||
}
|
||||
|
||||
@ -177,7 +189,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
* DER-encoded OCSP response for that certificate. A deep copy of
|
||||
* the map is performed to protect against subsequent modification.
|
||||
*/
|
||||
public void setOCSPResponses(Map<X509Certificate, byte[]> responses)
|
||||
public void setOcspResponses(Map<X509Certificate, byte[]> responses)
|
||||
{
|
||||
if (responses == null) {
|
||||
this.ocspResponses = Collections.<X509Certificate, byte[]>emptyMap();
|
||||
@ -200,7 +212,7 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
* the map is returned to protect against subsequent modification.
|
||||
* Returns an empty map if no responses have been specified.
|
||||
*/
|
||||
public Map<X509Certificate, byte[]> getOCSPResponses() {
|
||||
public Map<X509Certificate, byte[]> getOcspResponses() {
|
||||
Map<X509Certificate, byte[]> copy = new HashMap<>(ocspResponses.size());
|
||||
for (Map.Entry<X509Certificate, byte[]> e : ocspResponses.entrySet()) {
|
||||
copy.put(e.getKey(), e.getValue().clone());
|
||||
@ -223,15 +235,31 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
/**
|
||||
* Gets the revocation options.
|
||||
*
|
||||
* @return an unmodifiable set of revocation options, or an empty set if
|
||||
* none are specified
|
||||
* @return an unmodifiable set of revocation options. The set is empty if
|
||||
* no options have been specified.
|
||||
*/
|
||||
public Set<Option> getOptions() {
|
||||
return Collections.unmodifiableSet(options);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list containing the exceptions that are ignored by the
|
||||
* revocation checker when the {@link Option#SOFT_FAIL SOFT_FAIL} option
|
||||
* is set. The list is cleared each time {@link #init init} is called.
|
||||
* The list is ordered in ascending order according to the certificate
|
||||
* index returned by {@link CertPathValidatorException#getIndex getIndex}
|
||||
* method of each entry.
|
||||
* <p>
|
||||
* An implementation of {@code PKIXRevocationChecker} is responsible for
|
||||
* adding the ignored exceptions to the list.
|
||||
*
|
||||
* @return an unmodifiable list containing the ignored exceptions. The list
|
||||
* is empty if no exceptions have been ignored.
|
||||
*/
|
||||
public abstract List<CertPathValidatorException> getSoftFailExceptions();
|
||||
|
||||
@Override
|
||||
public Object clone() {
|
||||
public PKIXRevocationChecker clone() {
|
||||
PKIXRevocationChecker copy = (PKIXRevocationChecker)super.clone();
|
||||
copy.ocspExtensions = new ArrayList<>(ocspExtensions);
|
||||
copy.ocspResponses = new HashMap<>(ocspResponses);
|
||||
@ -262,9 +290,26 @@ public abstract class PKIXRevocationChecker extends PKIXCertPathChecker {
|
||||
*/
|
||||
PREFER_CRLS,
|
||||
/**
|
||||
* Ignore network failures. The default behavior is to consider it a
|
||||
* failure if the revocation status of a certificate cannot be obtained
|
||||
* due to a network error. This option applies to both OCSP and CRLs.
|
||||
* Disable the fallback mechanism.
|
||||
*/
|
||||
NO_FALLBACK,
|
||||
/**
|
||||
* Allow revocation check to succeed if the revocation status cannot be
|
||||
* determined for one of the following reasons:
|
||||
* <p><ul>
|
||||
* <li>The CRL or OCSP response cannot be obtained because of a
|
||||
* network error.
|
||||
* <li>The OCSP responder returns one of the following errors
|
||||
* specified in section 2.3 of RFC 2560: internalError, tryLater,
|
||||
* or unauthorized.
|
||||
* </ul><br>
|
||||
* Note that these conditions apply to both OCSP and CRLs, and unless
|
||||
* the {@code NO_FALLBACK} option is set, the revocation check is
|
||||
* allowed to succeed only if both mechanisms fail under one of the
|
||||
* conditions as stated above.
|
||||
* Exceptions that cause the network errors are ignored but can be
|
||||
* later retrieved by calling the
|
||||
* {@link #getSoftFailExceptions getSoftFailExceptions} method.
|
||||
*/
|
||||
SOFT_FAIL
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -59,7 +59,8 @@ public class Annotation {
|
||||
/**
|
||||
* Constructs an annotation record with the given value, which
|
||||
* may be null.
|
||||
* @param value The value of the attribute
|
||||
*
|
||||
* @param value the value of the attribute
|
||||
*/
|
||||
public Annotation(Object value) {
|
||||
this.value = value;
|
||||
@ -67,6 +68,8 @@ public class Annotation {
|
||||
|
||||
/**
|
||||
* Returns the value of the attribute, which may be null.
|
||||
*
|
||||
* @return the value of the attribute
|
||||
*/
|
||||
public Object getValue() {
|
||||
return value;
|
||||
@ -74,6 +77,8 @@ public class Annotation {
|
||||
|
||||
/**
|
||||
* Returns the String representation of this Annotation.
|
||||
*
|
||||
* @return the {@code String} representation of this {@code Annotation}
|
||||
*/
|
||||
public String toString() {
|
||||
return getClass().getName() + "[value=" + value + "]";
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -101,6 +101,8 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
|
||||
/**
|
||||
* Constructs an {@code Attribute} with the given name.
|
||||
*
|
||||
* @param name the name of {@code Attribute}
|
||||
*/
|
||||
protected Attribute(String name) {
|
||||
this.name = name;
|
||||
@ -111,7 +113,7 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
|
||||
/**
|
||||
* Compares two objects for equality. This version only returns true
|
||||
* for <code>x.equals(y)</code> if <code>x</code> and <code>y</code> refer
|
||||
* for {@code x.equals(y)} if {@code x} and {@code y} refer
|
||||
* to the same object, and guarantees this for all subclasses.
|
||||
*/
|
||||
public final boolean equals(Object obj) {
|
||||
@ -137,6 +139,8 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
|
||||
/**
|
||||
* Returns the name of the attribute.
|
||||
*
|
||||
* @return the name of {@code Attribute}
|
||||
*/
|
||||
protected String getName() {
|
||||
return name;
|
||||
@ -144,6 +148,10 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
|
||||
/**
|
||||
* Resolves instances being deserialized to the predefined constants.
|
||||
*
|
||||
* @return the resolved {@code Attribute} object
|
||||
* @throws InvalidObjectException if the object to resolve is not
|
||||
* an instance of {@code Attribute}
|
||||
*/
|
||||
protected Object readResolve() throws InvalidObjectException {
|
||||
if (this.getClass() != Attribute.class) {
|
||||
@ -171,6 +179,7 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
* it is often necessary to store the reading (pronunciation) along with the
|
||||
* written form.
|
||||
* <p>Values are instances of {@link Annotation} holding instances of {@link String}.
|
||||
*
|
||||
* @see Annotation
|
||||
* @see java.lang.String
|
||||
*/
|
||||
@ -196,18 +205,26 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
* <p>Any contiguous text segments having the same attributes (the
|
||||
* same set of attribute/value pairs) are treated as separate runs
|
||||
* if the attributes have been given to those text segments separately.
|
||||
*
|
||||
* @return the index of the first character of the run
|
||||
*/
|
||||
public int getRunStart();
|
||||
|
||||
/**
|
||||
* Returns the index of the first character of the run
|
||||
* with respect to the given {@code attribute} containing the current character.
|
||||
*
|
||||
* @param attribute the desired attribute.
|
||||
* @return the index of the first character of the run
|
||||
*/
|
||||
public int getRunStart(Attribute attribute);
|
||||
|
||||
/**
|
||||
* Returns the index of the first character of the run
|
||||
* with respect to the given {@code attributes} containing the current character.
|
||||
*
|
||||
* @param attributes a set of the desired attributes.
|
||||
* @return the index of the first character of the run
|
||||
*/
|
||||
public int getRunStart(Set<? extends Attribute> attributes);
|
||||
|
||||
@ -218,30 +235,43 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
* <p>Any contiguous text segments having the same attributes (the
|
||||
* same set of attribute/value pairs) are treated as separate runs
|
||||
* if the attributes have been given to those text segments separately.
|
||||
*
|
||||
* @return the index of the first character following the run
|
||||
*/
|
||||
public int getRunLimit();
|
||||
|
||||
/**
|
||||
* Returns the index of the first character following the run
|
||||
* with respect to the given {@code attribute} containing the current character.
|
||||
*
|
||||
* @param attribute the desired attribute
|
||||
* @return the index of the first character following the run
|
||||
*/
|
||||
public int getRunLimit(Attribute attribute);
|
||||
|
||||
/**
|
||||
* Returns the index of the first character following the run
|
||||
* with respect to the given {@code attributes} containing the current character.
|
||||
*
|
||||
* @param attributes a set of the desired attributes
|
||||
* @return the index of the first character following the run
|
||||
*/
|
||||
public int getRunLimit(Set<? extends Attribute> attributes);
|
||||
|
||||
/**
|
||||
* Returns a map with the attributes defined on the current
|
||||
* character.
|
||||
*
|
||||
* @return a map with the attributes defined on the current character
|
||||
*/
|
||||
public Map<Attribute,Object> getAttributes();
|
||||
|
||||
/**
|
||||
* Returns the value of the named {@code attribute} for the current character.
|
||||
* Returns {@code null} if the {@code attribute} is not defined.
|
||||
*
|
||||
* @param attribute the desired attribute
|
||||
* @return the value of the named {@code attribute} or {@code null}
|
||||
*/
|
||||
public Object getAttribute(Attribute attribute);
|
||||
|
||||
@ -249,6 +279,8 @@ public interface AttributedCharacterIterator extends CharacterIterator {
|
||||
* Returns the keys of all attributes defined on the
|
||||
* iterator's text range. The set is empty if no
|
||||
* attributes are defined.
|
||||
*
|
||||
* @return the keys of all attributes
|
||||
*/
|
||||
public Set<Attribute> getAllAttributeKeys();
|
||||
};
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2000, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -176,8 +176,10 @@ public final class Bidi {
|
||||
* Create a Bidi object representing the bidi information on a line of text within
|
||||
* the paragraph represented by the current Bidi. This call is not required if the
|
||||
* entire paragraph fits on one line.
|
||||
*
|
||||
* @param lineStart the offset from the start of the paragraph to the start of the line.
|
||||
* @param lineLimit the offset from the start of the paragraph to the limit of the line.
|
||||
* @return a {@code Bidi} object
|
||||
*/
|
||||
public Bidi createLineBidi(int lineStart, int lineLimit) {
|
||||
AttributedString astr = new AttributedString("");
|
||||
@ -189,6 +191,7 @@ public final class Bidi {
|
||||
/**
|
||||
* Return true if the line is not left-to-right or right-to-left. This means it either has mixed runs of left-to-right
|
||||
* and right-to-left text, or the base direction differs from the direction of the only run of text.
|
||||
*
|
||||
* @return true if the line is not left-to-right or right-to-left.
|
||||
*/
|
||||
public boolean isMixed() {
|
||||
@ -197,6 +200,7 @@ public final class Bidi {
|
||||
|
||||
/**
|
||||
* Return true if the line is all left-to-right text and the base direction is left-to-right.
|
||||
*
|
||||
* @return true if the line is all left-to-right text and the base direction is left-to-right
|
||||
*/
|
||||
public boolean isLeftToRight() {
|
||||
@ -236,8 +240,10 @@ public final class Bidi {
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the resolved level of the character at offset. If offset is <0 or >=
|
||||
* the length of the line, return the base direction level.
|
||||
* Return the resolved level of the character at offset. If offset is
|
||||
* {@literal <} 0 or ≥ the length of the line, return the base direction
|
||||
* level.
|
||||
*
|
||||
* @param offset the index of the character for which to return the level
|
||||
* @return the resolved level of the character at offset
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -191,7 +191,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
*
|
||||
* Find the next word:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* public static int nextWordStartAfter(int pos, String text) {
|
||||
* BreakIterator wb = BreakIterator.getWordInstance();
|
||||
* wb.setText(text);
|
||||
@ -207,7 +207,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* }
|
||||
* return BreakIterator.DONE;
|
||||
* }
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* (The iterator returned by BreakIterator.getWordInstance() is unique in that
|
||||
* the break positions it returns don't represent both the start and end of the
|
||||
* thing being iterated over. That is, a sentence-break iterator returns breaks
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -50,7 +50,7 @@ import java.util.Arrays;
|
||||
* specifies a half-open interval up to the next item:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* X matches j if and only if limit[j] <= X < limit[j+1]
|
||||
* X matches j if and only if limit[j] ≤ X < limit[j+1]
|
||||
* </pre>
|
||||
* </blockquote>
|
||||
* If there is no match, then either the first or last index is used, depending
|
||||
@ -85,21 +85,21 @@ import java.util.Arrays;
|
||||
* <p>
|
||||
* Here is a simple example that shows formatting and parsing:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* double[] limits = {1,2,3,4,5,6,7};
|
||||
* String[] dayOfWeekNames = {"Sun","Mon","Tue","Wed","Thur","Fri","Sat"};
|
||||
* ChoiceFormat form = new ChoiceFormat(limits, dayOfWeekNames);
|
||||
* ParsePosition status = new ParsePosition(0);
|
||||
* for (double i = 0.0; i <= 8.0; ++i) {
|
||||
* for (double i = 0.0; i <= 8.0; ++i) {
|
||||
* status.setIndex(0);
|
||||
* System.out.println(i + " -> " + form.format(i) + " -> "
|
||||
* System.out.println(i + " -> " + form.format(i) + " -> "
|
||||
* + form.parse(form.format(i),status));
|
||||
* }
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* Here is a more complex example, with a pattern format:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* double[] filelimits = {0,1,2};
|
||||
* String[] filepart = {"are no files","is one file","are {2} files"};
|
||||
* ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
|
||||
@ -107,20 +107,20 @@ import java.util.Arrays;
|
||||
* MessageFormat pattform = new MessageFormat("There {0} on {1}");
|
||||
* pattform.setFormats(testFormats);
|
||||
* Object[] testArgs = {null, "ADisk", null};
|
||||
* for (int i = 0; i < 4; ++i) {
|
||||
* for (int i = 0; i < 4; ++i) {
|
||||
* testArgs[0] = new Integer(i);
|
||||
* testArgs[2] = testArgs[0];
|
||||
* System.out.println(pattform.format(testArgs));
|
||||
* }
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* <p>
|
||||
* Specifying a pattern for ChoiceFormat objects is fairly straightforward.
|
||||
* For example:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* ChoiceFormat fmt = new ChoiceFormat(
|
||||
* "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2.");
|
||||
* "-1#is negative| 0#is zero or fraction | 1#is one |1.0<is 1+ |2#is two |2<is more than 2.");
|
||||
* System.out.println("Formatter Pattern : " + fmt.toPattern());
|
||||
*
|
||||
* System.out.println("Format with -INF : " + fmt.format(Double.NEGATIVE_INFINITY));
|
||||
@ -133,25 +133,25 @@ import java.util.Arrays;
|
||||
* System.out.println("Format with 2.1 : " + fmt.format(2.1));
|
||||
* System.out.println("Format with NaN : " + fmt.format(Double.NaN));
|
||||
* System.out.println("Format with +INF : " + fmt.format(Double.POSITIVE_INFINITY));
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* And the output result would be like the following:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* Format with -INF : is negative
|
||||
* Format with -1.0 : is negative
|
||||
* Format with 0 : is zero or fraction
|
||||
* Format with 0.9 : is zero or fraction
|
||||
* Format with 1.0 : is one
|
||||
* Format with 1.5 : is 1+
|
||||
* Format with 2 : is two
|
||||
* Format with 2.1 : is more than 2.
|
||||
* Format with NaN : is negative
|
||||
* Format with +INF : is more than 2.
|
||||
* </pre>
|
||||
* <pre>{@code
|
||||
* Format with -INF : is negative
|
||||
* Format with -1.0 : is negative
|
||||
* Format with 0 : is zero or fraction
|
||||
* Format with 0.9 : is zero or fraction
|
||||
* Format with 1.0 : is one
|
||||
* Format with 1.5 : is 1+
|
||||
* Format with 2 : is two
|
||||
* Format with 2.1 : is more than 2.
|
||||
* Format with NaN : is negative
|
||||
* Format with +INF : is more than 2.
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
*
|
||||
* <h4><a name="synchronization">Synchronization</a></h4>
|
||||
* <h3><a name="synchronization">Synchronization</a></h3>
|
||||
*
|
||||
* <p>
|
||||
* Choice formats are not synchronized.
|
||||
@ -255,6 +255,8 @@ public class ChoiceFormat extends NumberFormat {
|
||||
|
||||
/**
|
||||
* Gets the pattern.
|
||||
*
|
||||
* @return the pattern string
|
||||
*/
|
||||
public String toPattern() {
|
||||
StringBuffer result = new StringBuffer();
|
||||
@ -305,6 +307,8 @@ public class ChoiceFormat extends NumberFormat {
|
||||
|
||||
/**
|
||||
* Constructs with limits and corresponding formats based on the pattern.
|
||||
*
|
||||
* @param newPattern the new pattern string
|
||||
* @see #applyPattern
|
||||
*/
|
||||
public ChoiceFormat(String newPattern) {
|
||||
@ -313,6 +317,9 @@ public class ChoiceFormat extends NumberFormat {
|
||||
|
||||
/**
|
||||
* Constructs with the limits and the corresponding formats.
|
||||
*
|
||||
* @param limits limits in ascending order
|
||||
* @param formats corresponding format strings
|
||||
* @see #setChoices
|
||||
*/
|
||||
public ChoiceFormat(double[] limits, String[] formats) {
|
||||
@ -322,9 +329,9 @@ public class ChoiceFormat extends NumberFormat {
|
||||
/**
|
||||
* Set the choices to be used in formatting.
|
||||
* @param limits contains the top value that you want
|
||||
* parsed with that format,and should be in ascending sorted order. When
|
||||
* parsed with that format, and should be in ascending sorted order. When
|
||||
* formatting X, the choice will be the i, where
|
||||
* limit[i] <= X < limit[i+1].
|
||||
* limit[i] ≤ X {@literal <} limit[i+1].
|
||||
* If the limit array is not in ascending order, the results of formatting
|
||||
* will be incorrect.
|
||||
* @param formats are the formats you want to use for each limit.
|
||||
@ -434,9 +441,12 @@ public class ChoiceFormat extends NumberFormat {
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the least double greater than d.
|
||||
* If NaN, returns same value.
|
||||
* Finds the least double greater than {@code d}.
|
||||
* If {@code NaN}, returns same value.
|
||||
* <p>Used to make half-open intervals.
|
||||
*
|
||||
* @param d the reference value
|
||||
* @return the least double value greather than {@code d}
|
||||
* @see #previousDouble
|
||||
*/
|
||||
public static final double nextDouble (double d) {
|
||||
@ -444,8 +454,11 @@ public class ChoiceFormat extends NumberFormat {
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the greatest double less than d.
|
||||
* If NaN, returns same value.
|
||||
* Finds the greatest double less than {@code d}.
|
||||
* If {@code NaN}, returns same value.
|
||||
*
|
||||
* @param d the reference value
|
||||
* @return the greatest double value less than {@code d}
|
||||
* @see #nextDouble
|
||||
*/
|
||||
public static final double previousDouble (double d) {
|
||||
@ -553,15 +566,21 @@ public class ChoiceFormat extends NumberFormat {
|
||||
static final long POSITIVEINFINITY = 0x7FF0000000000000L;
|
||||
|
||||
/**
|
||||
* Finds the least double greater than d (if positive == true),
|
||||
* or the greatest double less than d (if positive == false).
|
||||
* If NaN, returns same value.
|
||||
* Finds the least double greater than {@code d} (if {@code positive} is
|
||||
* {@code true}), or the greatest double less than {@code d} (if
|
||||
* {@code positive} is {@code false}).
|
||||
* If {@code NaN}, returns same value.
|
||||
*
|
||||
* Does not affect floating-point flags,
|
||||
* provided these member functions do not:
|
||||
* Double.longBitsToDouble(long)
|
||||
* Double.doubleToLongBits(double)
|
||||
* Double.isNaN(double)
|
||||
*
|
||||
* @param d the reference value
|
||||
* @param positive {@code true} if the least double is desired;
|
||||
* {@code false} otherwise
|
||||
* @return the least or greater double value
|
||||
*/
|
||||
public static double nextDouble (double d, boolean positive) {
|
||||
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -54,14 +54,14 @@ import sun.text.normalizer.NormalizerBase;
|
||||
* For example, consider the following in Spanish:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* "ca" -> the first key is key('c') and second key is key('a').
|
||||
* "cha" -> the first key is key('ch') and second key is key('a').
|
||||
* "ca" → the first key is key('c') and second key is key('a').
|
||||
* "cha" → the first key is key('ch') and second key is key('a').
|
||||
* </pre>
|
||||
* </blockquote>
|
||||
* And in German,
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* "\u00e4b"-> the first key is key('a'), the second key is key('e'), and
|
||||
* "\u00e4b" → the first key is key('a'), the second key is key('e'), and
|
||||
* the third key is key('b').
|
||||
* </pre>
|
||||
* </blockquote>
|
||||
@ -177,6 +177,8 @@ public final class CollationElementIterator
|
||||
* means that when you change direction while iterating (i.e., call next() and
|
||||
* then call previous(), or call previous() and then call next()), you'll get
|
||||
* back the same element twice.</p>
|
||||
*
|
||||
* @return the next collation element
|
||||
*/
|
||||
public int next()
|
||||
{
|
||||
@ -272,6 +274,8 @@ public final class CollationElementIterator
|
||||
* updates the pointer. This means that when you change direction while
|
||||
* iterating (i.e., call next() and then call previous(), or call previous()
|
||||
* and then call next()), you'll get back the same element twice.</p>
|
||||
*
|
||||
* @return the previous collation element
|
||||
* @since 1.2
|
||||
*/
|
||||
public int previous()
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2005, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -68,28 +68,28 @@ package java.text;
|
||||
* The following example shows how <code>CollationKey</code>s might be used
|
||||
* to sort a list of <code>String</code>s.
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* // Create an array of CollationKeys for the Strings to be sorted.
|
||||
* Collator myCollator = Collator.getInstance();
|
||||
* CollationKey[] keys = new CollationKey[3];
|
||||
* keys[0] = myCollator.getCollationKey("Tom");
|
||||
* keys[1] = myCollator.getCollationKey("Dick");
|
||||
* keys[2] = myCollator.getCollationKey("Harry");
|
||||
* sort( keys );
|
||||
* <br>
|
||||
* sort(keys);
|
||||
*
|
||||
* //...
|
||||
* <br>
|
||||
*
|
||||
* // Inside body of sort routine, compare keys this way
|
||||
* if( keys[i].compareTo( keys[j] ) > 0 )
|
||||
* if (keys[i].compareTo(keys[j]) > 0)
|
||||
* // swap keys[i] and keys[j]
|
||||
* <br>
|
||||
*
|
||||
* //...
|
||||
* <br>
|
||||
*
|
||||
* // Finally, when we've returned from sort.
|
||||
* System.out.println( keys[0].getSourceString() );
|
||||
* System.out.println( keys[1].getSourceString() );
|
||||
* System.out.println( keys[2].getSourceString() );
|
||||
* </pre>
|
||||
* System.out.println(keys[0].getSourceString());
|
||||
* System.out.println(keys[1].getSourceString());
|
||||
* System.out.println(keys[2].getSourceString());
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
*
|
||||
* @see Collator
|
||||
@ -112,6 +112,8 @@ public abstract class CollationKey implements Comparable<CollationKey> {
|
||||
|
||||
/**
|
||||
* Returns the String that this CollationKey represents.
|
||||
*
|
||||
* @return the source string of this CollationKey
|
||||
*/
|
||||
public String getSourceString() {
|
||||
return source;
|
||||
@ -123,6 +125,8 @@ public abstract class CollationKey implements Comparable<CollationKey> {
|
||||
* could be legitimately compared, then one could compare the byte arrays
|
||||
* for each of those keys to obtain the same result. Byte arrays are
|
||||
* organized most significant byte first.
|
||||
*
|
||||
* @return a byte array representation of the CollationKey
|
||||
*/
|
||||
abstract public byte[] toByteArray();
|
||||
|
||||
@ -130,8 +134,8 @@ public abstract class CollationKey implements Comparable<CollationKey> {
|
||||
/**
|
||||
* CollationKey constructor.
|
||||
*
|
||||
* @param source - the source string.
|
||||
* @exception NullPointerException if <code>source</code> is null.
|
||||
* @param source the source string
|
||||
* @exception NullPointerException if {@code source} is null
|
||||
* @since 1.6
|
||||
*/
|
||||
protected CollationKey(String source) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -57,7 +57,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* {@code DateFormat} is an abstract class for date/time formatting subclasses which
|
||||
* formats and parses dates or time in a language-independent manner.
|
||||
* The date/time formatting subclass, such as {@link SimpleDateFormat}, allows for
|
||||
* formatting (i.e., date -> text), parsing (text -> date), and
|
||||
* formatting (i.e., date → text), parsing (text → date), and
|
||||
* normalization. The date is represented as a <code>Date</code> object or
|
||||
* as the milliseconds since January 1, 1970, 00:00:00 GMT.
|
||||
*
|
||||
@ -73,28 +73,36 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
*
|
||||
* <p>To format a date for the current Locale, use one of the
|
||||
* static factory methods:
|
||||
* <pre>
|
||||
* myString = DateFormat.getDateInstance().format(myDate);
|
||||
* </pre>
|
||||
* <blockquote>
|
||||
* <pre>{@code
|
||||
* myString = DateFormat.getDateInstance().format(myDate);
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* <p>If you are formatting multiple dates, it is
|
||||
* more efficient to get the format and use it multiple times so that
|
||||
* the system doesn't have to fetch the information about the local
|
||||
* language and country conventions multiple times.
|
||||
* <pre>
|
||||
* DateFormat df = DateFormat.getDateInstance();
|
||||
* for (int i = 0; i < myDate.length; ++i) {
|
||||
* output.println(df.format(myDate[i]) + "; ");
|
||||
* }
|
||||
* </pre>
|
||||
* <blockquote>
|
||||
* <pre>{@code
|
||||
* DateFormat df = DateFormat.getDateInstance();
|
||||
* for (int i = 0; i < myDate.length; ++i) {
|
||||
* output.println(df.format(myDate[i]) + "; ");
|
||||
* }
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* <p>To format a date for a different Locale, specify it in the
|
||||
* call to {@link #getDateInstance(int, Locale) getDateInstance()}.
|
||||
* <pre>
|
||||
* DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
|
||||
* </pre>
|
||||
* <blockquote>
|
||||
* <pre>{@code
|
||||
* DateFormat df = DateFormat.getDateInstance(DateFormat.LONG, Locale.FRANCE);
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* <p>You can use a DateFormat to parse also.
|
||||
* <pre>
|
||||
* myDate = df.parse(myString);
|
||||
* </pre>
|
||||
* <blockquote>
|
||||
* <pre>{@code
|
||||
* myDate = df.parse(myString);
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* <p>Use {@code getDateInstance} to get the normal date format for that country.
|
||||
* There are other static factory methods available.
|
||||
* Use {@code getTimeInstance} to get the time format for that country.
|
||||
@ -125,7 +133,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* on the screen.
|
||||
* </ul>
|
||||
*
|
||||
* <h4><a name="synchronization">Synchronization</a></h4>
|
||||
* <h3><a name="synchronization">Synchronization</a></h3>
|
||||
*
|
||||
* <p>
|
||||
* Date formats are not synchronized.
|
||||
@ -581,6 +589,8 @@ public abstract class DateFormat extends Format {
|
||||
/**
|
||||
* Get a default date/time formatter that uses the SHORT style for both the
|
||||
* date and the time.
|
||||
*
|
||||
* @return a date/time formatter
|
||||
*/
|
||||
public final static DateFormat getInstance() {
|
||||
return getDateTimeInstance(SHORT, SHORT);
|
||||
@ -653,9 +663,9 @@ public abstract class DateFormat extends Format {
|
||||
/**
|
||||
* Sets the time zone for the calendar of this {@code DateFormat} object.
|
||||
* This method is equivalent to the following call.
|
||||
* <blockquote><pre>
|
||||
* getCalendar().setTimeZone(zone)
|
||||
* </pre></blockquote>
|
||||
* <blockquote><pre>{@code
|
||||
* getCalendar().setTimeZone(zone)
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* <p>The {@code TimeZone} set by this method is overwritten by a
|
||||
* {@link #setCalendar(java.util.Calendar) setCalendar} call.
|
||||
@ -673,9 +683,9 @@ public abstract class DateFormat extends Format {
|
||||
/**
|
||||
* Gets the time zone.
|
||||
* This method is equivalent to the following call.
|
||||
* <blockquote><pre>
|
||||
* getCalendar().getTimeZone()
|
||||
* </pre></blockquote>
|
||||
* <blockquote><pre>{@code
|
||||
* getCalendar().getTimeZone()
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* @return the time zone associated with the calendar of DateFormat.
|
||||
*/
|
||||
@ -691,9 +701,9 @@ public abstract class DateFormat extends Format {
|
||||
* inputs must match this object's format.
|
||||
*
|
||||
* <p>This method is equivalent to the following call.
|
||||
* <blockquote><pre>
|
||||
* getCalendar().setLenient(lenient)
|
||||
* </pre></blockquote>
|
||||
* <blockquote><pre>{@code
|
||||
* getCalendar().setLenient(lenient)
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* <p>This leniency value is overwritten by a call to {@link
|
||||
* #setCalendar(java.util.Calendar) setCalendar()}.
|
||||
@ -709,9 +719,9 @@ public abstract class DateFormat extends Format {
|
||||
/**
|
||||
* Tell whether date/time parsing is to be lenient.
|
||||
* This method is equivalent to the following call.
|
||||
* <blockquote><pre>
|
||||
* getCalendar().isLenient()
|
||||
* </pre></blockquote>
|
||||
* <blockquote><pre>{@code
|
||||
* getCalendar().isLenient()
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* @return {@code true} if the {@link #calendar} is lenient;
|
||||
* {@code false} otherwise.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -135,6 +135,7 @@ public class DateFormatSymbols implements Serializable, Cloneable {
|
||||
* implementations. For full locale coverage, use the
|
||||
* {@link #getInstance(Locale) getInstance} method.
|
||||
*
|
||||
* @param locale the desired locale
|
||||
* @see #getInstance(Locale)
|
||||
* @exception java.util.MissingResourceException
|
||||
* if the resources for the specified locale cannot be
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -87,7 +87,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* the <code>NumberFormat</code> factory methods, the pattern and symbols are
|
||||
* read from localized <code>ResourceBundle</code>s.
|
||||
*
|
||||
* <h4>Patterns</h4>
|
||||
* <h3>Patterns</h3>
|
||||
*
|
||||
* <code>DecimalFormat</code> patterns have the following syntax:
|
||||
* <blockquote><pre>
|
||||
@ -174,7 +174,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <blockquote>
|
||||
* <table border=0 cellspacing=3 cellpadding=0 summary="Chart showing symbol,
|
||||
* location, localized, and meaning.">
|
||||
* <tr bgcolor="#ccccff">
|
||||
* <tr style="background-color: rgb(204, 204, 255);">
|
||||
* <th align=left>Symbol
|
||||
* <th align=left>Location
|
||||
* <th align=left>Localized?
|
||||
@ -184,7 +184,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
* <td>Digit
|
||||
* <tr valign=top bgcolor="#eeeeff">
|
||||
* <tr style="vertical-align: top; background-color: rgb(238, 238, 255);">
|
||||
* <td><code>#</code>
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
@ -194,7 +194,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
* <td>Decimal separator or monetary decimal separator
|
||||
* <tr valign=top bgcolor="#eeeeff">
|
||||
* <tr style="vertical-align: top; background-color: rgb(238, 238, 255);">
|
||||
* <td><code>-</code>
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
@ -204,7 +204,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
* <td>Grouping separator
|
||||
* <tr valign=top bgcolor="#eeeeff">
|
||||
* <tr style="vertical-align: top; background-color: rgb(238, 238, 255);">
|
||||
* <td><code>E</code>
|
||||
* <td>Number
|
||||
* <td>Yes
|
||||
@ -215,7 +215,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <td>Subpattern boundary
|
||||
* <td>Yes
|
||||
* <td>Separates positive and negative subpatterns
|
||||
* <tr valign=top bgcolor="#eeeeff">
|
||||
* <tr style="vertical-align: top; background-color: rgb(238, 238, 255);">
|
||||
* <td><code>%</code>
|
||||
* <td>Prefix or suffix
|
||||
* <td>Yes
|
||||
@ -225,7 +225,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* <td>Prefix or suffix
|
||||
* <td>Yes
|
||||
* <td>Multiply by 1000 and show as per mille value
|
||||
* <tr valign=top bgcolor="#eeeeff">
|
||||
* <tr style="vertical-align: top; background-color: rgb(238, 238, 255);">
|
||||
* <td><code>¤</code> (<code>\u00A4</code>)
|
||||
* <td>Prefix or suffix
|
||||
* <td>No
|
||||
@ -248,7 +248,8 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
*
|
||||
* <p>Numbers in scientific notation are expressed as the product of a mantissa
|
||||
* and a power of ten, for example, 1234 can be expressed as 1.234 x 10^3. The
|
||||
* mantissa is often in the range 1.0 <= x < 10.0, but it need not be.
|
||||
* mantissa is often in the range 1.0 ≤ x {@literal <} 10.0, but it need not
|
||||
* be.
|
||||
* <code>DecimalFormat</code> can be instructed to format and parse scientific
|
||||
* notation <em>only via a pattern</em>; there is currently no factory method
|
||||
* that creates a scientific notation format. In a pattern, the exponent
|
||||
@ -336,13 +337,13 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
*
|
||||
* <h4>Example</h4>
|
||||
*
|
||||
* <blockquote><pre>
|
||||
* <blockquote><pre>{@code
|
||||
* <strong>// Print out a number using the localized number, integer, currency,
|
||||
* // and percent format for each locale</strong>
|
||||
* Locale[] locales = NumberFormat.getAvailableLocales();
|
||||
* double myNumber = -1234.56;
|
||||
* NumberFormat form;
|
||||
* for (int j=0; j<4; ++j) {
|
||||
* for (int j = 0; j < 4; ++j) {
|
||||
* System.out.println("FORMAT");
|
||||
* for (int i = 0; i < locales.length; ++i) {
|
||||
* if (locales[i].getCountry().length() == 0) {
|
||||
@ -368,7 +369,7 @@ import sun.util.locale.provider.ResourceBundleBasedAdapter;
|
||||
* } catch (ParseException e) {}
|
||||
* }
|
||||
* }
|
||||
* </pre></blockquote>
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* @see <a href="http://java.sun.com/docs/books/tutorial/i18n/format/decimalFormat.html">Java Tutorial</a>
|
||||
* @see NumberFormat
|
||||
@ -421,7 +422,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* return the most appropriate sub-class of NumberFormat for a given
|
||||
* locale.
|
||||
*
|
||||
* @param pattern A non-localized pattern string.
|
||||
* @param pattern a non-localized pattern string.
|
||||
* @exception NullPointerException if <code>pattern</code> is null
|
||||
* @exception IllegalArgumentException if the given pattern is invalid.
|
||||
* @see java.text.NumberFormat#getInstance
|
||||
@ -2382,6 +2383,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Get the positive prefix.
|
||||
* <P>Examples: +123, $123, sFr123
|
||||
*
|
||||
* @return the positive prefix
|
||||
*/
|
||||
public String getPositivePrefix () {
|
||||
return positivePrefix;
|
||||
@ -2390,6 +2393,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Set the positive prefix.
|
||||
* <P>Examples: +123, $123, sFr123
|
||||
*
|
||||
* @param newValue the new positive prefix
|
||||
*/
|
||||
public void setPositivePrefix (String newValue) {
|
||||
positivePrefix = newValue;
|
||||
@ -2420,6 +2425,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Get the negative prefix.
|
||||
* <P>Examples: -123, ($123) (with negative suffix), sFr-123
|
||||
*
|
||||
* @return the negative prefix
|
||||
*/
|
||||
public String getNegativePrefix () {
|
||||
return negativePrefix;
|
||||
@ -2428,6 +2435,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Set the negative prefix.
|
||||
* <P>Examples: -123, ($123) (with negative suffix), sFr-123
|
||||
*
|
||||
* @param newValue the new negative prefix
|
||||
*/
|
||||
public void setNegativePrefix (String newValue) {
|
||||
negativePrefix = newValue;
|
||||
@ -2457,6 +2466,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Get the positive suffix.
|
||||
* <P>Example: 123%
|
||||
*
|
||||
* @return the positive suffix
|
||||
*/
|
||||
public String getPositiveSuffix () {
|
||||
return positiveSuffix;
|
||||
@ -2465,6 +2476,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Set the positive suffix.
|
||||
* <P>Example: 123%
|
||||
*
|
||||
* @param newValue the new positive suffix
|
||||
*/
|
||||
public void setPositiveSuffix (String newValue) {
|
||||
positiveSuffix = newValue;
|
||||
@ -2494,6 +2507,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Get the negative suffix.
|
||||
* <P>Examples: -123%, ($123) (with positive suffixes)
|
||||
*
|
||||
* @return the negative suffix
|
||||
*/
|
||||
public String getNegativeSuffix () {
|
||||
return negativeSuffix;
|
||||
@ -2502,6 +2517,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Set the negative suffix.
|
||||
* <P>Examples: 123%
|
||||
*
|
||||
* @param newValue the new negative suffix
|
||||
*/
|
||||
public void setNegativeSuffix (String newValue) {
|
||||
negativeSuffix = newValue;
|
||||
@ -2532,6 +2549,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* Gets the multiplier for use in percent, per mille, and similar
|
||||
* formats.
|
||||
*
|
||||
* @return the multiplier
|
||||
* @see #setMultiplier(int)
|
||||
*/
|
||||
public int getMultiplier () {
|
||||
@ -2549,6 +2567,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* <P>Example: with multiplier 100, 1.23 is formatted as "123", and
|
||||
* "123" is parsed into 1.23.
|
||||
*
|
||||
* @param newValue the new multiplier
|
||||
* @see #getMultiplier
|
||||
*/
|
||||
public void setMultiplier (int newValue) {
|
||||
@ -2571,6 +2590,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
* Return the grouping size. Grouping size is the number of digits between
|
||||
* grouping separators in the integer portion of a number. For example,
|
||||
* in the number "123,456.78", the grouping size is 3.
|
||||
*
|
||||
* @return the grouping size
|
||||
* @see #setGroupingSize
|
||||
* @see java.text.NumberFormat#isGroupingUsed
|
||||
* @see java.text.DecimalFormatSymbols#getGroupingSeparator
|
||||
@ -2585,6 +2606,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
* in the number "123,456.78", the grouping size is 3.
|
||||
* <br>
|
||||
* The value passed in is converted to a byte, which may lose information.
|
||||
*
|
||||
* @param newValue the new grouping size
|
||||
* @see #getGroupingSize
|
||||
* @see java.text.NumberFormat#setGroupingUsed
|
||||
* @see java.text.DecimalFormatSymbols#setGroupingSeparator
|
||||
@ -2597,7 +2620,10 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Allows you to get the behavior of the decimal separator with integers.
|
||||
* (The decimal separator will always appear with decimals.)
|
||||
* <P>Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345
|
||||
* <P>Example: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345
|
||||
*
|
||||
* @return {@code true} if the decimal separator is always shown;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean isDecimalSeparatorAlwaysShown() {
|
||||
return decimalSeparatorAlwaysShown;
|
||||
@ -2606,7 +2632,10 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Allows you to set the behavior of the decimal separator with integers.
|
||||
* (The decimal separator will always appear with decimals.)
|
||||
* <P>Example: Decimal ON: 12345 -> 12345.; OFF: 12345 -> 12345
|
||||
* <P>Example: Decimal ON: 12345 → 12345.; OFF: 12345 → 12345
|
||||
*
|
||||
* @param newValue {@code true} if the decimal separator is always shown;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public void setDecimalSeparatorAlwaysShown(boolean newValue) {
|
||||
decimalSeparatorAlwaysShown = newValue;
|
||||
@ -2616,6 +2645,9 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Returns whether the {@link #parse(java.lang.String, java.text.ParsePosition)}
|
||||
* method returns <code>BigDecimal</code>. The default value is false.
|
||||
*
|
||||
* @return {@code true} if the parse method returns BigDecimal;
|
||||
* {@code false} otherwise
|
||||
* @see #setParseBigDecimal
|
||||
* @since 1.5
|
||||
*/
|
||||
@ -2626,6 +2658,9 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Sets whether the {@link #parse(java.lang.String, java.text.ParsePosition)}
|
||||
* method returns <code>BigDecimal</code>.
|
||||
*
|
||||
* @param newValue {@code true} if the parse method returns BigDecimal;
|
||||
* {@code false} otherwise
|
||||
* @see #isParseBigDecimal
|
||||
* @since 1.5
|
||||
*/
|
||||
@ -2712,6 +2747,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Synthesizes a pattern string that represents the current state
|
||||
* of this Format object.
|
||||
*
|
||||
* @return a pattern string
|
||||
* @see #applyPattern
|
||||
*/
|
||||
public String toPattern() {
|
||||
@ -2721,6 +2758,8 @@ public class DecimalFormat extends NumberFormat {
|
||||
/**
|
||||
* Synthesizes a localized pattern string that represents the current
|
||||
* state of this Format object.
|
||||
*
|
||||
* @return a localized pattern string
|
||||
* @see #applyPattern
|
||||
*/
|
||||
public String toLocalizedPattern() {
|
||||
@ -3049,7 +3088,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* by this routine, since that is the typical end-user desire;
|
||||
* use setMaximumInteger if you want to set a real value.
|
||||
* For negative numbers, use a second pattern, separated by a semicolon
|
||||
* <P>Example <code>"#,#00.0#"</code> -> 1,234.56
|
||||
* <P>Example <code>"#,#00.0#"</code> → 1,234.56
|
||||
* <P>This means a minimum of 2 integer digits, 1 fraction digit, and
|
||||
* a maximum of 2 fraction digits.
|
||||
* <p>Example: <code>"#,#00.0#;(#,#00.0#)"</code> for negatives in
|
||||
@ -3057,6 +3096,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* <p>In negative patterns, the minimum and maximum counts are ignored;
|
||||
* these are presumed to be set in the positive pattern.
|
||||
*
|
||||
* @param pattern a new pattern
|
||||
* @exception NullPointerException if <code>pattern</code> is null
|
||||
* @exception IllegalArgumentException if the given pattern is invalid.
|
||||
*/
|
||||
@ -3075,7 +3115,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* by this routine, since that is the typical end-user desire;
|
||||
* use setMaximumInteger if you want to set a real value.
|
||||
* For negative numbers, use a second pattern, separated by a semicolon
|
||||
* <P>Example <code>"#,#00.0#"</code> -> 1,234.56
|
||||
* <P>Example <code>"#,#00.0#"</code> → 1,234.56
|
||||
* <P>This means a minimum of 2 integer digits, 1 fraction digit, and
|
||||
* a maximum of 2 fraction digits.
|
||||
* <p>Example: <code>"#,#00.0#;(#,#00.0#)"</code> for negatives in
|
||||
@ -3083,6 +3123,7 @@ public class DecimalFormat extends NumberFormat {
|
||||
* <p>In negative patterns, the minimum and maximum counts are ignored;
|
||||
* these are presumed to be set in the positive pattern.
|
||||
*
|
||||
* @param pattern a new pattern
|
||||
* @exception NullPointerException if <code>pattern</code> is null
|
||||
* @exception IllegalArgumentException if the given pattern is invalid.
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -106,6 +106,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* This may return a {@code NumberFormat} instance with the Thai numbering system,
|
||||
* instead of the Latin numbering system.
|
||||
*
|
||||
* @param locale the desired locale
|
||||
* @exception NullPointerException if <code>locale</code> is null
|
||||
*/
|
||||
public DecimalFormatSymbols( Locale locale ) {
|
||||
@ -122,7 +123,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* implementations. It must contain at least a <code>Locale</code>
|
||||
* instance equal to {@link java.util.Locale#US Locale.US}.
|
||||
*
|
||||
* @return An array of locales for which localized
|
||||
* @return an array of locales for which localized
|
||||
* <code>DecimalFormatSymbols</code> instances are available.
|
||||
* @since 1.6
|
||||
*/
|
||||
@ -166,6 +167,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* </pre>
|
||||
* This may return a {@code NumberFormat} instance with the Thai numbering system,
|
||||
* instead of the Latin numbering system.
|
||||
*
|
||||
* @param locale the desired locale.
|
||||
* @return a <code>DecimalFormatSymbols</code> instance.
|
||||
* @exception NullPointerException if <code>locale</code> is null
|
||||
@ -185,6 +187,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for zero. Different for Arabic, etc.
|
||||
*
|
||||
* @return the character used for zero
|
||||
*/
|
||||
public char getZeroDigit() {
|
||||
return zeroDigit;
|
||||
@ -192,6 +196,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for zero. Different for Arabic, etc.
|
||||
*
|
||||
* @param zeroDigit the character used for zero
|
||||
*/
|
||||
public void setZeroDigit(char zeroDigit) {
|
||||
this.zeroDigit = zeroDigit;
|
||||
@ -199,6 +205,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for thousands separator. Different for French, etc.
|
||||
*
|
||||
* @return the grouping separator
|
||||
*/
|
||||
public char getGroupingSeparator() {
|
||||
return groupingSeparator;
|
||||
@ -206,6 +214,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for thousands separator. Different for French, etc.
|
||||
*
|
||||
* @param groupingSeparator the grouping separator
|
||||
*/
|
||||
public void setGroupingSeparator(char groupingSeparator) {
|
||||
this.groupingSeparator = groupingSeparator;
|
||||
@ -213,6 +223,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for decimal sign. Different for French, etc.
|
||||
*
|
||||
* @return the character used for decimal sign
|
||||
*/
|
||||
public char getDecimalSeparator() {
|
||||
return decimalSeparator;
|
||||
@ -220,6 +232,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for decimal sign. Different for French, etc.
|
||||
*
|
||||
* @param decimalSeparator the character used for decimal sign
|
||||
*/
|
||||
public void setDecimalSeparator(char decimalSeparator) {
|
||||
this.decimalSeparator = decimalSeparator;
|
||||
@ -227,6 +241,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for per mille sign. Different for Arabic, etc.
|
||||
*
|
||||
* @return the character used for per mille sign
|
||||
*/
|
||||
public char getPerMill() {
|
||||
return perMill;
|
||||
@ -234,6 +250,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for per mille sign. Different for Arabic, etc.
|
||||
*
|
||||
* @param perMill the character used for per mille sign
|
||||
*/
|
||||
public void setPerMill(char perMill) {
|
||||
this.perMill = perMill;
|
||||
@ -241,6 +259,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for percent sign. Different for Arabic, etc.
|
||||
*
|
||||
* @return the character used for percent sign
|
||||
*/
|
||||
public char getPercent() {
|
||||
return percent;
|
||||
@ -248,6 +268,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for percent sign. Different for Arabic, etc.
|
||||
*
|
||||
* @param percent the character used for percent sign
|
||||
*/
|
||||
public void setPercent(char percent) {
|
||||
this.percent = percent;
|
||||
@ -255,6 +277,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Gets the character used for a digit in a pattern.
|
||||
*
|
||||
* @return the character used for a digit in a pattern
|
||||
*/
|
||||
public char getDigit() {
|
||||
return digit;
|
||||
@ -262,6 +286,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the character used for a digit in a pattern.
|
||||
*
|
||||
* @param digit the character used for a digit in a pattern
|
||||
*/
|
||||
public void setDigit(char digit) {
|
||||
this.digit = digit;
|
||||
@ -270,6 +296,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Gets the character used to separate positive and negative subpatterns
|
||||
* in a pattern.
|
||||
*
|
||||
* @return the pattern separator
|
||||
*/
|
||||
public char getPatternSeparator() {
|
||||
return patternSeparator;
|
||||
@ -278,6 +306,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Sets the character used to separate positive and negative subpatterns
|
||||
* in a pattern.
|
||||
*
|
||||
* @param patternSeparator the pattern separator
|
||||
*/
|
||||
public void setPatternSeparator(char patternSeparator) {
|
||||
this.patternSeparator = patternSeparator;
|
||||
@ -286,6 +316,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Gets the string used to represent infinity. Almost always left
|
||||
* unchanged.
|
||||
*
|
||||
* @return the string representing infinity
|
||||
*/
|
||||
public String getInfinity() {
|
||||
return infinity;
|
||||
@ -294,6 +326,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Sets the string used to represent infinity. Almost always left
|
||||
* unchanged.
|
||||
*
|
||||
* @param infinity the string representing infinity
|
||||
*/
|
||||
public void setInfinity(String infinity) {
|
||||
this.infinity = infinity;
|
||||
@ -302,6 +336,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Gets the string used to represent "not a number". Almost always left
|
||||
* unchanged.
|
||||
*
|
||||
* @return the string representing "not a number"
|
||||
*/
|
||||
public String getNaN() {
|
||||
return NaN;
|
||||
@ -310,6 +346,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Sets the string used to represent "not a number". Almost always left
|
||||
* unchanged.
|
||||
*
|
||||
* @param NaN the string representing "not a number"
|
||||
*/
|
||||
public void setNaN(String NaN) {
|
||||
this.NaN = NaN;
|
||||
@ -319,6 +357,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* Gets the character used to represent minus sign. If no explicit
|
||||
* negative format is specified, one is formed by prefixing
|
||||
* minusSign to the positive format.
|
||||
*
|
||||
* @return the character representing minus sign
|
||||
*/
|
||||
public char getMinusSign() {
|
||||
return minusSign;
|
||||
@ -328,6 +368,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* Sets the character used to represent minus sign. If no explicit
|
||||
* negative format is specified, one is formed by prefixing
|
||||
* minusSign to the positive format.
|
||||
*
|
||||
* @param minusSign the character representing minus sign
|
||||
*/
|
||||
public void setMinusSign(char minusSign) {
|
||||
this.minusSign = minusSign;
|
||||
@ -336,6 +378,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Returns the currency symbol for the currency of these
|
||||
* DecimalFormatSymbols in their locale.
|
||||
*
|
||||
* @return the currency symbol
|
||||
* @since 1.2
|
||||
*/
|
||||
public String getCurrencySymbol()
|
||||
@ -346,6 +390,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Sets the currency symbol for the currency of these
|
||||
* DecimalFormatSymbols in their locale.
|
||||
*
|
||||
* @param currency the currency symbol
|
||||
* @since 1.2
|
||||
*/
|
||||
public void setCurrencySymbol(String currency)
|
||||
@ -356,6 +402,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
/**
|
||||
* Returns the ISO 4217 currency code of the currency of these
|
||||
* DecimalFormatSymbols.
|
||||
*
|
||||
* @return the currency code
|
||||
* @since 1.2
|
||||
*/
|
||||
public String getInternationalCurrencySymbol()
|
||||
@ -374,6 +422,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
* then the currency attribute is set to null and the currency symbol
|
||||
* attribute is not modified.
|
||||
*
|
||||
* @param currencyCode the currency code
|
||||
* @see #setCurrency
|
||||
* @see #setCurrencySymbol
|
||||
* @since 1.2
|
||||
@ -427,6 +476,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Returns the monetary decimal separator.
|
||||
*
|
||||
* @return the monetary decimal separator
|
||||
* @since 1.2
|
||||
*/
|
||||
public char getMonetaryDecimalSeparator()
|
||||
@ -436,6 +487,8 @@ public class DecimalFormatSymbols implements Cloneable, Serializable {
|
||||
|
||||
/**
|
||||
* Sets the monetary decimal separator.
|
||||
*
|
||||
* @param sep the monetary decimal separator
|
||||
* @since 1.2
|
||||
*/
|
||||
public void setMonetaryDecimalSeparator(char sep)
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -100,6 +100,7 @@ public class FieldPosition {
|
||||
* identified by constants, whose names typically end with _FIELD,
|
||||
* in the various subclasses of Format.
|
||||
*
|
||||
* @param field the field identifier
|
||||
* @see java.text.NumberFormat#INTEGER_FIELD
|
||||
* @see java.text.NumberFormat#FRACTION_FIELD
|
||||
* @see java.text.DateFormat#YEAR_FIELD
|
||||
@ -157,6 +158,8 @@ public class FieldPosition {
|
||||
|
||||
/**
|
||||
* Retrieves the field identifier.
|
||||
*
|
||||
* @return the field identifier
|
||||
*/
|
||||
public int getField() {
|
||||
return field;
|
||||
@ -164,6 +167,8 @@ public class FieldPosition {
|
||||
|
||||
/**
|
||||
* Retrieves the index of the first character in the requested field.
|
||||
*
|
||||
* @return the begin index
|
||||
*/
|
||||
public int getBeginIndex() {
|
||||
return beginIndex;
|
||||
@ -172,6 +177,8 @@ public class FieldPosition {
|
||||
/**
|
||||
* Retrieves the index of the character following the last character in the
|
||||
* requested field.
|
||||
*
|
||||
* @return the end index
|
||||
*/
|
||||
public int getEndIndex() {
|
||||
return endIndex;
|
||||
@ -179,6 +186,8 @@ public class FieldPosition {
|
||||
|
||||
/**
|
||||
* Sets the begin index. For use by subclasses of Format.
|
||||
*
|
||||
* @param bi the begin index
|
||||
* @since 1.2
|
||||
*/
|
||||
public void setBeginIndex(int bi) {
|
||||
@ -187,6 +196,8 @@ public class FieldPosition {
|
||||
|
||||
/**
|
||||
* Sets the end index. For use by subclasses of Format.
|
||||
*
|
||||
* @param ei the end index
|
||||
* @since 1.2
|
||||
*/
|
||||
public void setEndIndex(int ei) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -58,7 +58,7 @@ import java.io.Serializable;
|
||||
* no separator in between, and in this case the <code>parseObject</code> could
|
||||
* not tell which digits belong to which number.
|
||||
*
|
||||
* <h4>Subclassing</h4>
|
||||
* <h3>Subclassing</h3>
|
||||
*
|
||||
* <p>
|
||||
* The Java Platform provides three specialized subclasses of <code>Format</code>--
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -68,7 +68,7 @@ import java.util.Locale;
|
||||
* behavior is defined by the pattern that you provide as well as the
|
||||
* subformats used for inserted arguments.
|
||||
*
|
||||
* <h4><a name="patterns">Patterns and Their Interpretation</a></h4>
|
||||
* <h3><a name="patterns">Patterns and Their Interpretation</a></h3>
|
||||
*
|
||||
* <code>MessageFormat</code> uses patterns of the following form:
|
||||
* <blockquote><pre>
|
||||
@ -287,10 +287,10 @@ import java.util.Locale;
|
||||
* You can create the <code>ChoiceFormat</code> programmatically, as in the
|
||||
* above example, or by using a pattern. See {@link ChoiceFormat}
|
||||
* for more information.
|
||||
* <blockquote><pre>
|
||||
* <blockquote><pre>{@code
|
||||
* form.applyPattern(
|
||||
* "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
|
||||
* </pre></blockquote>
|
||||
* "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
|
||||
* }</pre></blockquote>
|
||||
*
|
||||
* <p>
|
||||
* <strong>Note:</strong> As we see above, the string produced
|
||||
@ -778,7 +778,7 @@ public class MessageFormat extends Format {
|
||||
* <tr>
|
||||
* <td><code>instanceof ChoiceFormat</code>
|
||||
* <td><i>any</i>
|
||||
* <td><code>subformat.format(argument).indexOf('{') >= 0 ?<br>
|
||||
* <td><code>subformat.format(argument).indexOf('{') >= 0 ?<br>
|
||||
* (new MessageFormat(subformat.format(argument), getLocale())).format(argument) :
|
||||
* subformat.format(argument)</code>
|
||||
* <tr>
|
||||
@ -811,6 +811,8 @@ public class MessageFormat extends Format {
|
||||
* @param result where text is appended.
|
||||
* @param pos On input: an alignment field, if desired.
|
||||
* On output: the offsets of the alignment field.
|
||||
* @return the string buffer passed in as {@code result}, with formatted
|
||||
* text appended
|
||||
* @exception IllegalArgumentException if an argument in the
|
||||
* <code>arguments</code> array is not of the type
|
||||
* expected by the format element(s) that use it.
|
||||
@ -828,6 +830,9 @@ public class MessageFormat extends Format {
|
||||
* <code>(new {@link #MessageFormat(String) MessageFormat}(pattern)).{@link #format(java.lang.Object[], java.lang.StringBuffer, java.text.FieldPosition) format}(arguments, new StringBuffer(), null).toString()</code>
|
||||
* </blockquote>
|
||||
*
|
||||
* @param pattern the pattern string
|
||||
* @param arguments object(s) to format
|
||||
* @return the formatted string
|
||||
* @exception IllegalArgumentException if the pattern is invalid,
|
||||
* or if an argument in the <code>arguments</code> array
|
||||
* is not of the type expected by the format element(s)
|
||||
@ -940,6 +945,10 @@ public class MessageFormat extends Format {
|
||||
* is comparing against the pattern "AAD {0} BBB", the error index is
|
||||
* 0. When an error occurs, the call to this method will return null.
|
||||
* If the source is null, return an empty array.
|
||||
*
|
||||
* @param source the string to parse
|
||||
* @param pos the parse position
|
||||
* @return an array of parsed objects
|
||||
*/
|
||||
public Object[] parse(String source, ParsePosition pos) {
|
||||
if (source == null) {
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -55,14 +55,12 @@ import sun.text.normalizer.NormalizerImpl;
|
||||
*
|
||||
* <p><pre>
|
||||
* U+00C1 LATIN CAPITAL LETTER A WITH ACUTE</pre>
|
||||
* </p>
|
||||
*
|
||||
* or as two separate characters (the "decomposed" form):
|
||||
*
|
||||
* <p><pre>
|
||||
* U+0041 LATIN CAPITAL LETTER A
|
||||
* U+0301 COMBINING ACUTE ACCENT</pre>
|
||||
* </p>
|
||||
*
|
||||
* To a user of your program, however, both of these sequences should be
|
||||
* treated as the same "user-level" character "A with acute accent". When you
|
||||
@ -78,13 +76,11 @@ import sun.text.normalizer.NormalizerImpl;
|
||||
* U+0066 LATIN SMALL LETTER F
|
||||
* U+0066 LATIN SMALL LETTER F
|
||||
* U+0069 LATIN SMALL LETTER I</pre>
|
||||
* </p>
|
||||
*
|
||||
* or as the single character
|
||||
*
|
||||
* <p><pre>
|
||||
* U+FB03 LATIN SMALL LIGATURE FFI</pre>
|
||||
* </p>
|
||||
*
|
||||
* The ffi ligature is not a distinct semantic character, and strictly speaking
|
||||
* it shouldn't be in Unicode at all, but it was included for compatibility
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -73,34 +73,34 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* To format a number for the current Locale, use one of the factory
|
||||
* class methods:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* myString = NumberFormat.getInstance().format(myNumber);
|
||||
* </pre>
|
||||
* <pre>{@code
|
||||
* myString = NumberFormat.getInstance().format(myNumber);
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* If you are formatting multiple numbers, it is
|
||||
* more efficient to get the format and use it multiple times so that
|
||||
* the system doesn't have to fetch the information about the local
|
||||
* language and country conventions multiple times.
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* NumberFormat nf = NumberFormat.getInstance();
|
||||
* for (int i = 0; i < myNumber.length; ++i) {
|
||||
* output.println(nf.format(myNumber[i]) + "; ");
|
||||
* }
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* To format a number for a different Locale, specify it in the
|
||||
* call to <code>getInstance</code>.
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* NumberFormat nf = NumberFormat.getInstance(Locale.FRENCH);
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* You can also use a <code>NumberFormat</code> to parse numbers:
|
||||
* <blockquote>
|
||||
* <pre>
|
||||
* <pre>{@code
|
||||
* myNumber = nf.parse(myString);
|
||||
* </pre>
|
||||
* }</pre>
|
||||
* </blockquote>
|
||||
* Use <code>getInstance</code> or <code>getNumberInstance</code> to get the
|
||||
* normal number format. Use <code>getIntegerInstance</code> to get an
|
||||
@ -125,8 +125,8 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* the detailed description for each these control methods,
|
||||
* <p>
|
||||
* setParseIntegerOnly : only affects parsing, e.g.
|
||||
* if true, "3456.78" -> 3456 (and leaves the parse position just after index 6)
|
||||
* if false, "3456.78" -> 3456.78 (and leaves the parse position just after index 8)
|
||||
* if true, "3456.78" → 3456 (and leaves the parse position just after index 6)
|
||||
* if false, "3456.78" → 3456.78 (and leaves the parse position just after index 8)
|
||||
* This is independent of formatting. If you want to not show a decimal point
|
||||
* where there might be no digits after the decimal point, use
|
||||
* setDecimalSeparatorAlwaysShown.
|
||||
@ -134,8 +134,8 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* setDecimalSeparatorAlwaysShown : only affects formatting, and only where
|
||||
* there might be no digits after the decimal point, such as with a pattern
|
||||
* like "#,##0.##", e.g.,
|
||||
* if true, 3456.00 -> "3,456."
|
||||
* if false, 3456.00 -> "3456"
|
||||
* if true, 3456.00 → "3,456."
|
||||
* if false, 3456.00 → "3456"
|
||||
* This is independent of parsing. If you want parsing to stop at the decimal
|
||||
* point, use setParseIntegerOnly.
|
||||
*
|
||||
@ -166,7 +166,7 @@ import sun.util.locale.provider.LocaleServiceProviderPool;
|
||||
* numbers: "(12)" for -12.
|
||||
* </ol>
|
||||
*
|
||||
* <h4><a name="synchronization">Synchronization</a></h4>
|
||||
* <h3><a name="synchronization">Synchronization</a></h3>
|
||||
*
|
||||
* <p>
|
||||
* Number formats are generally not synchronized.
|
||||
@ -280,6 +280,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Specialization of format.
|
||||
*
|
||||
* @param number the double number to format
|
||||
* @return the formatted String
|
||||
* @exception ArithmeticException if rounding is needed with rounding
|
||||
* mode being set to RoundingMode.UNNECESSARY
|
||||
* @see java.text.Format#format
|
||||
@ -302,6 +305,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Specialization of format.
|
||||
*
|
||||
* @param number the long number to format
|
||||
* @return the formatted String
|
||||
* @exception ArithmeticException if rounding is needed with rounding
|
||||
* mode being set to RoundingMode.UNNECESSARY
|
||||
* @see java.text.Format#format
|
||||
@ -313,6 +319,12 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Specialization of format.
|
||||
*
|
||||
* @param number the double number to format
|
||||
* @param toAppendTo the StringBuffer to which the formatted text is to be
|
||||
* appended
|
||||
* @param pos the field position
|
||||
* @return the formatted StringBuffer
|
||||
* @exception ArithmeticException if rounding is needed with rounding
|
||||
* mode being set to RoundingMode.UNNECESSARY
|
||||
* @see java.text.Format#format
|
||||
@ -323,6 +335,12 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Specialization of format.
|
||||
*
|
||||
* @param number the long number to format
|
||||
* @param toAppendTo the StringBuffer to which the formatted text is to be
|
||||
* appended
|
||||
* @param pos the field position
|
||||
* @return the formatted StringBuffer
|
||||
* @exception ArithmeticException if rounding is needed with rounding
|
||||
* mode being set to RoundingMode.UNNECESSARY
|
||||
* @see java.text.Format#format
|
||||
@ -339,6 +357,10 @@ public abstract class NumberFormat extends Format {
|
||||
* after the 1).
|
||||
* Does not throw an exception; if no object can be parsed, index is
|
||||
* unchanged!
|
||||
*
|
||||
* @param source the String to parse
|
||||
* @param parsePosition the parse position
|
||||
* @return the parsed value
|
||||
* @see java.text.NumberFormat#isParseIntegerOnly
|
||||
* @see java.text.Format#parseObject
|
||||
*/
|
||||
@ -373,6 +395,9 @@ public abstract class NumberFormat extends Format {
|
||||
* would stop at the "." character. Of course, the exact format accepted
|
||||
* by the parse operation is locale dependant and determined by sub-classes
|
||||
* of NumberFormat.
|
||||
*
|
||||
* @return {@code true} if numbers should be parsed as integers only;
|
||||
* {@code false} otherwise
|
||||
*/
|
||||
public boolean isParseIntegerOnly() {
|
||||
return parseIntegerOnly;
|
||||
@ -380,6 +405,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Sets whether or not numbers should be parsed as integers only.
|
||||
*
|
||||
* @param value {@code true} if numbers should be parsed as integers only;
|
||||
* {@code false} otherwise
|
||||
* @see #isParseIntegerOnly
|
||||
*/
|
||||
public void setParseIntegerOnly(boolean value) {
|
||||
@ -393,6 +421,9 @@ public abstract class NumberFormat extends Format {
|
||||
* {@link java.util.Locale.Category#FORMAT FORMAT} locale.
|
||||
* This is the same as calling
|
||||
* {@link #getNumberInstance() getNumberInstance()}.
|
||||
*
|
||||
* @return the {@code NumberFormat} instance for general-purpose number
|
||||
* formatting
|
||||
*/
|
||||
public final static NumberFormat getInstance() {
|
||||
return getInstance(Locale.getDefault(Locale.Category.FORMAT), NUMBERSTYLE);
|
||||
@ -402,6 +433,10 @@ public abstract class NumberFormat extends Format {
|
||||
* Returns a general-purpose number format for the specified locale.
|
||||
* This is the same as calling
|
||||
* {@link #getNumberInstance(java.util.Locale) getNumberInstance(inLocale)}.
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
* @return the {@code NumberFormat} instance for general-purpose number
|
||||
* formatting
|
||||
*/
|
||||
public static NumberFormat getInstance(Locale inLocale) {
|
||||
return getInstance(inLocale, NUMBERSTYLE);
|
||||
@ -413,6 +448,9 @@ public abstract class NumberFormat extends Format {
|
||||
* <p>This is equivalent to calling
|
||||
* {@link #getNumberInstance(Locale)
|
||||
* getNumberInstance(Locale.getDefault(Locale.Category.FORMAT))}.
|
||||
*
|
||||
* @return the {@code NumberFormat} instance for general-purpose number
|
||||
* formatting
|
||||
* @see java.util.Locale#getDefault(java.util.Locale.Category)
|
||||
* @see java.util.Locale.Category#FORMAT
|
||||
*/
|
||||
@ -422,6 +460,10 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Returns a general-purpose number format for the specified locale.
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
* @return the {@code NumberFormat} instance for general-purpose number
|
||||
* formatting
|
||||
*/
|
||||
public static NumberFormat getNumberInstance(Locale inLocale) {
|
||||
return getInstance(inLocale, NUMBERSTYLE);
|
||||
@ -457,6 +499,7 @@ public abstract class NumberFormat extends Format {
|
||||
* and to parse only the integer part of an input string (see {@link
|
||||
* #isParseIntegerOnly isParseIntegerOnly}).
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
* @see #getRoundingMode()
|
||||
* @return a number format for integer values
|
||||
* @since 1.4
|
||||
@ -472,6 +515,7 @@ public abstract class NumberFormat extends Format {
|
||||
* {@link #getCurrencyInstance(Locale)
|
||||
* getCurrencyInstance(Locale.getDefault(Locale.Category.FORMAT))}.
|
||||
*
|
||||
* @return the {@code NumberFormat} instance for currency formatting
|
||||
* @see java.util.Locale#getDefault(java.util.Locale.Category)
|
||||
* @see java.util.Locale.Category#FORMAT
|
||||
*/
|
||||
@ -481,6 +525,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Returns a currency format for the specified locale.
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
* @return the {@code NumberFormat} instance for currency formatting
|
||||
*/
|
||||
public static NumberFormat getCurrencyInstance(Locale inLocale) {
|
||||
return getInstance(inLocale, CURRENCYSTYLE);
|
||||
@ -493,6 +540,7 @@ public abstract class NumberFormat extends Format {
|
||||
* {@link #getPercentInstance(Locale)
|
||||
* getPercentInstance(Locale.getDefault(Locale.Category.FORMAT))}.
|
||||
*
|
||||
* @return the {@code NumberFormat} instance for percentage formatting
|
||||
* @see java.util.Locale#getDefault(java.util.Locale.Category)
|
||||
* @see java.util.Locale.Category#FORMAT
|
||||
*/
|
||||
@ -502,6 +550,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Returns a percentage format for the specified locale.
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
* @return the {@code NumberFormat} instance for percentage formatting
|
||||
*/
|
||||
public static NumberFormat getPercentInstance(Locale inLocale) {
|
||||
return getInstance(inLocale, PERCENTSTYLE);
|
||||
@ -516,6 +567,8 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Returns a scientific format for the specified locale.
|
||||
*
|
||||
* @param inLocale the desired locale
|
||||
*/
|
||||
/*public*/ static NumberFormat getScientificInstance(Locale inLocale) {
|
||||
return getInstance(inLocale, SCIENTIFICSTYLE);
|
||||
@ -586,6 +639,9 @@ public abstract class NumberFormat extends Format {
|
||||
* English locale, with grouping on, the number 1234567 might be formatted
|
||||
* as "1,234,567". The grouping separator as well as the size of each group
|
||||
* is locale dependant and is determined by sub-classes of NumberFormat.
|
||||
*
|
||||
* @return {@code true} if grouping is used;
|
||||
* {@code false} otherwise
|
||||
* @see #setGroupingUsed
|
||||
*/
|
||||
public boolean isGroupingUsed() {
|
||||
@ -594,6 +650,9 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Set whether or not grouping will be used in this format.
|
||||
*
|
||||
* @param newValue {@code true} if grouping is used;
|
||||
* {@code false} otherwise
|
||||
* @see #isGroupingUsed
|
||||
*/
|
||||
public void setGroupingUsed(boolean newValue) {
|
||||
@ -603,6 +662,8 @@ public abstract class NumberFormat extends Format {
|
||||
/**
|
||||
* Returns the maximum number of digits allowed in the integer portion of a
|
||||
* number.
|
||||
*
|
||||
* @return the maximum number of digits
|
||||
* @see #setMaximumIntegerDigits
|
||||
*/
|
||||
public int getMaximumIntegerDigits() {
|
||||
@ -611,10 +672,11 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Sets the maximum number of digits allowed in the integer portion of a
|
||||
* number. maximumIntegerDigits must be >= minimumIntegerDigits. If the
|
||||
* number. maximumIntegerDigits must be ≥ minimumIntegerDigits. If the
|
||||
* new value for maximumIntegerDigits is less than the current value
|
||||
* of minimumIntegerDigits, then minimumIntegerDigits will also be set to
|
||||
* the new value.
|
||||
*
|
||||
* @param newValue the maximum number of integer digits to be shown; if
|
||||
* less than zero, then zero is used. The concrete subclass may enforce an
|
||||
* upper limit to this value appropriate to the numeric type being formatted.
|
||||
@ -630,6 +692,8 @@ public abstract class NumberFormat extends Format {
|
||||
/**
|
||||
* Returns the minimum number of digits allowed in the integer portion of a
|
||||
* number.
|
||||
*
|
||||
* @return the minimum number of digits
|
||||
* @see #setMinimumIntegerDigits
|
||||
*/
|
||||
public int getMinimumIntegerDigits() {
|
||||
@ -638,10 +702,11 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Sets the minimum number of digits allowed in the integer portion of a
|
||||
* number. minimumIntegerDigits must be <= maximumIntegerDigits. If the
|
||||
* number. minimumIntegerDigits must be ≤ maximumIntegerDigits. If the
|
||||
* new value for minimumIntegerDigits exceeds the current value
|
||||
* of maximumIntegerDigits, then maximumIntegerDigits will also be set to
|
||||
* the new value
|
||||
*
|
||||
* @param newValue the minimum number of integer digits to be shown; if
|
||||
* less than zero, then zero is used. The concrete subclass may enforce an
|
||||
* upper limit to this value appropriate to the numeric type being formatted.
|
||||
@ -657,6 +722,8 @@ public abstract class NumberFormat extends Format {
|
||||
/**
|
||||
* Returns the maximum number of digits allowed in the fraction portion of a
|
||||
* number.
|
||||
*
|
||||
* @return the maximum number of digits.
|
||||
* @see #setMaximumFractionDigits
|
||||
*/
|
||||
public int getMaximumFractionDigits() {
|
||||
@ -665,10 +732,11 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Sets the maximum number of digits allowed in the fraction portion of a
|
||||
* number. maximumFractionDigits must be >= minimumFractionDigits. If the
|
||||
* number. maximumFractionDigits must be ≥ minimumFractionDigits. If the
|
||||
* new value for maximumFractionDigits is less than the current value
|
||||
* of minimumFractionDigits, then minimumFractionDigits will also be set to
|
||||
* the new value.
|
||||
*
|
||||
* @param newValue the maximum number of fraction digits to be shown; if
|
||||
* less than zero, then zero is used. The concrete subclass may enforce an
|
||||
* upper limit to this value appropriate to the numeric type being formatted.
|
||||
@ -684,6 +752,8 @@ public abstract class NumberFormat extends Format {
|
||||
/**
|
||||
* Returns the minimum number of digits allowed in the fraction portion of a
|
||||
* number.
|
||||
*
|
||||
* @return the minimum number of digits
|
||||
* @see #setMinimumFractionDigits
|
||||
*/
|
||||
public int getMinimumFractionDigits() {
|
||||
@ -692,10 +762,11 @@ public abstract class NumberFormat extends Format {
|
||||
|
||||
/**
|
||||
* Sets the minimum number of digits allowed in the fraction portion of a
|
||||
* number. minimumFractionDigits must be <= maximumFractionDigits. If the
|
||||
* number. minimumFractionDigits must be ≤ maximumFractionDigits. If the
|
||||
* new value for minimumFractionDigits exceeds the current value
|
||||
* of maximumFractionDigits, then maximumIntegerDigits will also be set to
|
||||
* the new value
|
||||
*
|
||||
* @param newValue the minimum number of fraction digits to be shown; if
|
||||
* less than zero, then zero is used. The concrete subclass may enforce an
|
||||
* upper limit to this value appropriate to the numeric type being formatted.
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2012, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -55,6 +55,7 @@ class ParseException extends Exception {
|
||||
* Constructs a ParseException with the specified detail message and
|
||||
* offset.
|
||||
* A detail message is a String that describes this particular exception.
|
||||
*
|
||||
* @param s the detail message
|
||||
* @param errorOffset the position where the error is found while parsing.
|
||||
*/
|
||||
@ -65,6 +66,8 @@ class ParseException extends Exception {
|
||||
|
||||
/**
|
||||
* Returns the position where the error was found.
|
||||
*
|
||||
* @return the position where the error was found
|
||||
*/
|
||||
public int getErrorOffset () {
|
||||
return errorOffset;
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2002, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -69,6 +69,8 @@ public class ParsePosition {
|
||||
* Retrieve the current parse position. On input to a parse method, this
|
||||
* is the index of the character at which parsing will begin; on output, it
|
||||
* is the index of the character following the last character parsed.
|
||||
*
|
||||
* @return the current parse position
|
||||
*/
|
||||
public int getIndex() {
|
||||
return index;
|
||||
@ -76,6 +78,8 @@ public class ParsePosition {
|
||||
|
||||
/**
|
||||
* Set the current parse position.
|
||||
*
|
||||
* @param index the current parse position
|
||||
*/
|
||||
public void setIndex(int index) {
|
||||
this.index = index;
|
||||
@ -83,6 +87,8 @@ public class ParsePosition {
|
||||
|
||||
/**
|
||||
* Create a new ParsePosition with the given initial index.
|
||||
*
|
||||
* @param index initial index
|
||||
*/
|
||||
public ParsePosition(int index) {
|
||||
this.index = index;
|
||||
@ -91,6 +97,8 @@ public class ParsePosition {
|
||||
* Set the index at which a parse error occurred. Formatters
|
||||
* should set this before returning an error code from their
|
||||
* parseObject method. The default value is -1 if this is not set.
|
||||
*
|
||||
* @param ei the index at which an error occurred
|
||||
* @since 1.2
|
||||
*/
|
||||
public void setErrorIndex(int ei)
|
||||
@ -101,12 +109,15 @@ public class ParsePosition {
|
||||
/**
|
||||
* Retrieve the index at which an error occurred, or -1 if the
|
||||
* error index has not been set.
|
||||
*
|
||||
* @return the index at which an error occurred
|
||||
* @since 1.2
|
||||
*/
|
||||
public int getErrorIndex()
|
||||
{
|
||||
return errorIndex;
|
||||
}
|
||||
|
||||
/**
|
||||
* Overrides equals
|
||||
*/
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1997, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -68,17 +68,17 @@ import java.util.Locale;
|
||||
* <reset> <text-argument>
|
||||
* </pre>
|
||||
* The definitions of the rule elements is as follows:
|
||||
* <UL Type=disc>
|
||||
* <UL>
|
||||
* <LI><strong>Text-Argument</strong>: A text-argument is any sequence of
|
||||
* characters, excluding special characters (that is, common
|
||||
* whitespace characters [0009-000D, 0020] and rule syntax characters
|
||||
* [0021-002F, 003A-0040, 005B-0060, 007B-007E]). If those
|
||||
* characters are desired, you can put them in single quotes
|
||||
* (e.g. ampersand => '&'). Note that unquoted white space characters
|
||||
* (e.g. ampersand => '&'). Note that unquoted white space characters
|
||||
* are ignored; e.g. <code>b c</code> is treated as <code>bc</code>.
|
||||
* <LI><strong>Modifier</strong>: There are currently two modifiers that
|
||||
* turn on special collation rules.
|
||||
* <UL Type=square>
|
||||
* <UL>
|
||||
* <LI>'@' : Turns on backwards sorting of accents (secondary
|
||||
* differences), as in French.
|
||||
* <LI>'!' : Turns on Thai/Lao vowel-consonant swapping. If this
|
||||
@ -91,7 +91,7 @@ import java.util.Locale;
|
||||
* </UL>
|
||||
* <p>'@' : Indicates that accents are sorted backwards, as in French.
|
||||
* <LI><strong>Relation</strong>: The relations are the following:
|
||||
* <UL Type=square>
|
||||
* <UL>
|
||||
* <LI>'<' : Greater, as a letter difference (primary)
|
||||
* <LI>';' : Greater, as an accent difference (secondary)
|
||||
* <LI>',' : Greater, as a case difference (tertiary)
|
||||
@ -100,7 +100,7 @@ import java.util.Locale;
|
||||
* <LI><strong>Reset</strong>: There is a single reset
|
||||
* which is used primarily for contractions and expansions, but which
|
||||
* can also be used to add a modification at the end of a set of rules.
|
||||
* <p>'&' : Indicates that the next rule follows the position to where
|
||||
* <p>'&' : Indicates that the next rule follows the position to where
|
||||
* the reset text-argument would be sorted.
|
||||
* </UL>
|
||||
*
|
||||
@ -166,7 +166,7 @@ import java.util.Locale;
|
||||
* <p><strong>Errors</strong>
|
||||
* <p>
|
||||
* The following are errors:
|
||||
* <UL Type=disc>
|
||||
* <UL>
|
||||
* <LI>A text-argument contains unquoted punctuation symbols
|
||||
* (e.g. "a < b-c < d").
|
||||
* <LI>A relation or reset character not followed by a text-argument
|
||||
@ -206,8 +206,8 @@ import java.util.Locale;
|
||||
* String Norwegian = "< a, A < b, B < c, C < d, D < e, E < f, F < g, G < h, H < i, I" +
|
||||
* "< j, J < k, K < l, L < m, M < n, N < o, O < p, P < q, Q < r, R" +
|
||||
* "< s, S < t, T < u, U < v, V < w, W < x, X < y, Y < z, Z" +
|
||||
* "< \u00E6, \u00C6" + // Latin letter ae & AE
|
||||
* "< \u00F8, \u00D8" + // Latin letter o & O with stroke
|
||||
* "< \u00E6, \u00C6" + // Latin letter ae & AE
|
||||
* "< \u00F8, \u00D8" + // Latin letter o & O with stroke
|
||||
* "< \u00E5 = a\u030A," + // Latin letter a with ring above
|
||||
* " \u00C5 = A\u030A;" + // Latin letter A with ring above
|
||||
* " aa, AA";
|
||||
@ -232,9 +232,9 @@ import java.util.Locale;
|
||||
* + ";\u030B;\u030C;\u030D;\u030E" // main accents
|
||||
* + ";\u030F;\u0310;\u0311;\u0312" // main accents
|
||||
* + "< a , A ; ae, AE ; \u00e6 , \u00c6"
|
||||
* + "< b , B < c, C < e, E & C < d, D";
|
||||
* + "< b , B < c, C < e, E & C < d, D";
|
||||
* // change the order of accent characters
|
||||
* String addOn = "& \u0300 ; \u0308 ; \u0302";
|
||||
* String addOn = "& \u0300 ; \u0308 ; \u0302";
|
||||
* RuleBasedCollator myCollator = new RuleBasedCollator(oldRules + addOn);
|
||||
* </pre>
|
||||
* </blockquote>
|
||||
@ -274,7 +274,7 @@ public class RuleBasedCollator extends Collator{
|
||||
* @param rules the collation rules to build the collation table from.
|
||||
* @exception ParseException A format exception
|
||||
* will be thrown if the build process of the rules fails. For
|
||||
* example, build rule "a < ? < d" will cause the constructor to
|
||||
* example, build rule "a < ? < d" will cause the constructor to
|
||||
* throw the ParseException because the '?' is not quoted.
|
||||
*/
|
||||
public RuleBasedCollator(String rules) throws ParseException {
|
||||
@ -320,7 +320,10 @@ public class RuleBasedCollator extends Collator{
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a CollationElementIterator for the given String.
|
||||
* Returns a CollationElementIterator for the given String.
|
||||
*
|
||||
* @param source the string to be collated
|
||||
* @return a {@code CollationElementIterator} object
|
||||
* @see java.text.CollationElementIterator
|
||||
*/
|
||||
public CollationElementIterator getCollationElementIterator(String source) {
|
||||
@ -328,7 +331,10 @@ public class RuleBasedCollator extends Collator{
|
||||
}
|
||||
|
||||
/**
|
||||
* Return a CollationElementIterator for the given String.
|
||||
* Returns a CollationElementIterator for the given CharacterIterator.
|
||||
*
|
||||
* @param source the character iterator to be collated
|
||||
* @return a {@code CollationElementIterator} object
|
||||
* @see java.text.CollationElementIterator
|
||||
* @since 1.2
|
||||
*/
|
||||
|
||||
@ -59,7 +59,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
/**
|
||||
* <code>SimpleDateFormat</code> is a concrete class for formatting and
|
||||
* parsing dates in a locale-sensitive manner. It allows for formatting
|
||||
* (date -> text), parsing (text -> date), and normalization.
|
||||
* (date → text), parsing (text → date), and normalization.
|
||||
*
|
||||
* <p>
|
||||
* <code>SimpleDateFormat</code> allows you to start by choosing
|
||||
@ -73,7 +73,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* For more information on using these methods, see
|
||||
* {@link DateFormat}.
|
||||
*
|
||||
* <h4>Date and Time Patterns</h4>
|
||||
* <h3>Date and Time Patterns</h3>
|
||||
* <p>
|
||||
* Date and time formats are specified by <em>date and time pattern</em>
|
||||
* strings.
|
||||
@ -93,7 +93,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <code>'z'</code> are reserved):
|
||||
* <blockquote>
|
||||
* <table border=0 cellspacing=3 cellpadding=0 summary="Chart shows pattern letters, date/time component, presentation, and examples.">
|
||||
* <tr bgcolor="#ccccff">
|
||||
* <tr style="background-color: rgb(204, 204, 255);">
|
||||
* <th align=left>Letter
|
||||
* <th align=left>Date or Time Component
|
||||
* <th align=left>Presentation
|
||||
@ -103,7 +103,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Era designator
|
||||
* <td><a href="#text">Text</a>
|
||||
* <td><code>AD</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>y</code>
|
||||
* <td>Year
|
||||
* <td><a href="#year">Year</a>
|
||||
@ -113,7 +113,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Week year
|
||||
* <td><a href="#year">Year</a>
|
||||
* <td><code>2009</code>; <code>09</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>M</code>
|
||||
* <td>Month in year (context sensitive)
|
||||
* <td><a href="#month">Month</a>
|
||||
@ -123,7 +123,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Month in year (standalone form)
|
||||
* <td><a href="#month">Month</a>
|
||||
* <td><code>July</code>; <code>Jul</code>; <code>07</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>w</code>
|
||||
* <td>Week in year
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -133,7 +133,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Week in month
|
||||
* <td><a href="#number">Number</a>
|
||||
* <td><code>2</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>D</code>
|
||||
* <td>Day in year
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -143,7 +143,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Day in month
|
||||
* <td><a href="#number">Number</a>
|
||||
* <td><code>10</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>F</code>
|
||||
* <td>Day of week in month
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -153,7 +153,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Day name in week
|
||||
* <td><a href="#text">Text</a>
|
||||
* <td><code>Tuesday</code>; <code>Tue</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>u</code>
|
||||
* <td>Day number of week (1 = Monday, ..., 7 = Sunday)
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -163,7 +163,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Am/pm marker
|
||||
* <td><a href="#text">Text</a>
|
||||
* <td><code>PM</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>H</code>
|
||||
* <td>Hour in day (0-23)
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -173,7 +173,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Hour in day (1-24)
|
||||
* <td><a href="#number">Number</a>
|
||||
* <td><code>24</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>K</code>
|
||||
* <td>Hour in am/pm (0-11)
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -183,7 +183,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Hour in am/pm (1-12)
|
||||
* <td><a href="#number">Number</a>
|
||||
* <td><code>12</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>m</code>
|
||||
* <td>Minute in hour
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -193,7 +193,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Second in minute
|
||||
* <td><a href="#number">Number</a>
|
||||
* <td><code>55</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>S</code>
|
||||
* <td>Millisecond
|
||||
* <td><a href="#number">Number</a>
|
||||
@ -203,7 +203,7 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* <td>Time zone
|
||||
* <td><a href="#timezone">General time zone</a>
|
||||
* <td><code>Pacific Standard Time</code>; <code>PST</code>; <code>GMT-08:00</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>Z</code>
|
||||
* <td>Time zone
|
||||
* <td><a href="#rfc822timezone">RFC 822 time zone</a>
|
||||
@ -365,37 +365,37 @@ import sun.util.locale.provider.LocaleProviderAdapter;
|
||||
* in the U.S. Pacific Time time zone.
|
||||
* <blockquote>
|
||||
* <table border=0 cellspacing=3 cellpadding=0 summary="Examples of date and time patterns interpreted in the U.S. locale">
|
||||
* <tr bgcolor="#ccccff">
|
||||
* <tr style="background-color: rgb(204, 204, 255);">
|
||||
* <th align=left>Date and Time Pattern
|
||||
* <th align=left>Result
|
||||
* <tr>
|
||||
* <td><code>"yyyy.MM.dd G 'at' HH:mm:ss z"</code>
|
||||
* <td><code>2001.07.04 AD at 12:08:56 PDT</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>"EEE, MMM d, ''yy"</code>
|
||||
* <td><code>Wed, Jul 4, '01</code>
|
||||
* <tr>
|
||||
* <td><code>"h:mm a"</code>
|
||||
* <td><code>12:08 PM</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>"hh 'o''clock' a, zzzz"</code>
|
||||
* <td><code>12 o'clock PM, Pacific Daylight Time</code>
|
||||
* <tr>
|
||||
* <td><code>"K:mm a, z"</code>
|
||||
* <td><code>0:08 PM, PDT</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>"yyyyy.MMMMM.dd GGG hh:mm aaa"</code>
|
||||
* <td><code>02001.July.04 AD 12:08 PM</code>
|
||||
* <tr>
|
||||
* <td><code>"EEE, d MMM yyyy HH:mm:ss Z"</code>
|
||||
* <td><code>Wed, 4 Jul 2001 12:08:56 -0700</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>"yyMMddHHmmssZ"</code>
|
||||
* <td><code>010704120856-0700</code>
|
||||
* <tr>
|
||||
* <td><code>"yyyy-MM-dd'T'HH:mm:ss.SSSZ"</code>
|
||||
* <td><code>2001-07-04T12:08:56.235-0700</code>
|
||||
* <tr bgcolor="#eeeeff">
|
||||
* <tr style="background-color: rgb(238, 238, 255);">
|
||||
* <td><code>"yyyy-MM-dd'T'HH:mm:ss.SSSXXX"</code>
|
||||
* <td><code>2001-07-04T12:08:56.235-07:00</code>
|
||||
* <tr>
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright (c) 1996, 2011, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 1996, 2013, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
@ -59,6 +59,8 @@ public final class StringCharacterIterator implements CharacterIterator
|
||||
|
||||
/**
|
||||
* Constructs an iterator with an initial index of 0.
|
||||
*
|
||||
* @param text the {@code String} to be iterated over
|
||||
*/
|
||||
public StringCharacterIterator(String text)
|
||||
{
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user