Files
gerrit/java/com/google/gerrit/server/UserInitiated.java
Alice Kober-Sotzek 59eb45075b Replace factory classes of AccountsUpdate with annotations
As discussed in the comments of I01312c33c, we decided to use the
annotations @ServerInitiated and @UserInitiated instead of the factory
classes User and Server. This change applies this decision to the
AccountsUpdate class.

Contrary to GroupsUpdate, AccountsUpdate uses the user's identity only
for the author of commits and not for the committer. For this reason, we
adjust the Javadoc description for @UserInitiated and @ServerInitiated
to refer only to the author, which is in line with our general policy
of attributing modifications to the author of a NoteDb commit (e.g.
when we generate an audit log from commits).

Change-Id: I9aaf9b2a7427505ef36a438ea2db4a9a242ed268
2018-01-26 10:20:00 +01:00

35 lines
1.3 KiB
Java

// Copyright (C) 2017 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
package com.google.gerrit.server;
import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.RUNTIME;
import com.google.inject.BindingAnnotation;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;
/**
* A marker for database modifications which are directly related to a user request (e.g. happen
* inside of a request context). Those modifications will be attributed to the user by using the
* user's identity as author for all related NoteDb commits.
*/
@BindingAnnotation
@Target({FIELD, PARAMETER, METHOD})
@Retention(RUNTIME)
public @interface UserInitiated {}