Calendar.java: Implement Comparable<Calendar>.
* java/util/Calendar.java: Implement Comparable<Calendar>. Update comments. (clear): Call complete. (setTimeZone): Call computeTime, computeFields. (compareTo): New method. * java/nio/charset/Charset.java: Implement Comparable<Charset>. (availableCharsets): Genericized. (aliases): Likewise. (compareTo): Changed argument type. * java/lang/ClassLoader.java (loadClass): Genericized. (findClass): Likewise. (defineClass): Likewise. (resolveClass): Likewise. (findSystemClass): Likewise. (setSigners): Likewise. (findLoadedClass): Likewise. (getResources): Likewise. (findResources): Likewise. (getSystemResources): Likewise. (checkInitialized): New method. * java/lang/Class.java (getCanonicalName): New method. From-SVN: r121471
This commit is contained in:
parent
62e5bf5d42
commit
0a32f469ac
11 changed files with 193 additions and 46 deletions
|
@ -1,5 +1,5 @@
|
|||
/* Class.java -- Representation of a Java class.
|
||||
Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006
|
||||
Copyright (C) 1998, 1999, 2000, 2002, 2003, 2004, 2005, 2006, 2007
|
||||
Free Software Foundation
|
||||
|
||||
This file is part of GNU Classpath.
|
||||
|
@ -1290,6 +1290,59 @@ public final class Class<T>
|
|||
return v.toArray(new Annotation[v.size()]);
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* Returns the canonical name of this class, as defined by section
|
||||
* 6.7 of the Java language specification. Each package, top-level class,
|
||||
* top-level interface and primitive type has a canonical name. A member
|
||||
* class has a canonical name, if its parent class has one. Likewise,
|
||||
* an array type has a canonical name, if its component type does.
|
||||
* Local or anonymous classes do not have canonical names.
|
||||
* </p>
|
||||
* <p>
|
||||
* The canonical name for top-level classes, top-level interfaces and
|
||||
* primitive types is always the same as the fully-qualified name.
|
||||
* For array types, the canonical name is the canonical name of its
|
||||
* component type with `[]' appended.
|
||||
* </p>
|
||||
* <p>
|
||||
* The canonical name of a member class always refers to the place where
|
||||
* the class was defined, and is composed of the canonical name of the
|
||||
* defining class and the simple name of the member class, joined by `.'.
|
||||
* For example, if a <code>Person</code> class has an inner class,
|
||||
* <code>M</code>, then both its fully-qualified name and canonical name
|
||||
* is <code>Person.M</code>. A subclass, <code>Staff</code>, of
|
||||
* <code>Person</code> refers to the same inner class by the fully-qualified
|
||||
* name of <code>Staff.M</code>, but its canonical name is still
|
||||
* <code>Person.M</code>.
|
||||
* </p>
|
||||
* <p>
|
||||
* Where no canonical name is present, <code>null</code> is returned.
|
||||
* </p>
|
||||
*
|
||||
* @return the canonical name of the class, or <code>null</code> if the
|
||||
* class doesn't have a canonical name.
|
||||
* @since 1.5
|
||||
*/
|
||||
public String getCanonicalName()
|
||||
{
|
||||
if (isArray())
|
||||
{
|
||||
String componentName = getComponentType().getCanonicalName();
|
||||
if (componentName != null)
|
||||
return componentName + "[]";
|
||||
}
|
||||
if (isMemberClass())
|
||||
{
|
||||
String memberName = getDeclaringClass().getCanonicalName();
|
||||
if (memberName != null)
|
||||
return memberName + "." + getSimpleName();
|
||||
}
|
||||
if (isLocalClass() || isAnonymousClass())
|
||||
return null;
|
||||
return getName();
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns all annotations directly defined by this class. If there are
|
||||
* no annotations associated with this class, then a zero-length array
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue