提交 fe6febb0 编写于 作者: J Jesse Glick

Properly documenting null behavior of User-related methods.

上级 02e05ec8
......@@ -75,6 +75,9 @@ import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ConcurrentMap;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.annotation.CheckForNull;
import javax.annotation.Nonnull;
import javax.annotation.Nullable;
/**
* Represents a user.
......@@ -279,7 +282,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
* <p>
* This is used to avoid null {@link User} instance.
*/
public static User getUnknown() {
public static @Nonnull User getUnknown() {
return get("unknown");
}
......@@ -292,7 +295,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
* If false, this method will return null if {@link User} object
* with the given name doesn't exist.
*/
public static User get(String idOrFullName, boolean create) {
public static @Nullable User get(String idOrFullName, boolean create) {
if(idOrFullName==null)
return null;
String id = idOrFullName.replace('\\', '_').replace('/', '_').replace('<','_')
......@@ -314,7 +317,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
/**
* Gets the {@link User} object by its id or full name.
*/
public static User get(String idOrFullName) {
public static @Nonnull User get(String idOrFullName) {
return get(idOrFullName,true);
}
......@@ -323,7 +326,7 @@ public class User extends AbstractModelObject implements AccessControlled, Descr
* if the current user is anonymous.
* @since 1.172
*/
public static User current() {
public static @CheckForNull User current() {
Authentication a = Jenkins.getAuthentication();
if(a instanceof AnonymousAuthenticationToken)
return null;
......
......@@ -298,6 +298,7 @@ import static java.util.logging.Level.SEVERE;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
import java.util.regex.Pattern;
import javax.annotation.CheckForNull;
/**
* Root object of the system.
......@@ -2290,10 +2291,10 @@ public class Jenkins extends AbstractCIBase implements ModifiableItemGroup<TopLe
/**
* Gets the user of the given name.
*
* @return
* This method returns a non-null object for any user name, without validation.
* @return the user of the given name, if that person exists or the invoker {@link #hasPermission} on {@link #ADMINISTER}; else null
* @see User#get(String,boolean)
*/
public User getUser(String name) {
public @CheckForNull User getUser(String name) {
return User.get(name,hasPermission(ADMINISTER));
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册