| /* |
| * Copyright (C) 2012 The Android Open Source Project |
| * |
| * Licensed under the Eclipse Public License, Version 1.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.eclipse.org/org/documents/epl-v10.php |
| * |
| * 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.android.ide.eclipse.adt.internal.refactorings.core; |
| |
| import com.android.annotations.NonNull; |
| import com.android.annotations.Nullable; |
| |
| /** |
| * A result from a renaming operation |
| */ |
| public class RenameResult { |
| private boolean mCanceled; |
| private boolean mUnavailable; |
| private @Nullable String mName; |
| private boolean mClear; |
| |
| /** |
| * Constructs a new rename result |
| */ |
| private RenameResult() { |
| } |
| |
| /** |
| * Creates a new blank {@linkplain RenameResult} |
| * @return a new result |
| */ |
| @NonNull |
| public static RenameResult create() { |
| return new RenameResult(); |
| } |
| |
| /** |
| * Creates a new {@linkplain RenameResult} for a user canceled renaming operation |
| * @return a canceled operation |
| */ |
| @NonNull |
| public static RenameResult canceled() { |
| return new RenameResult().setCanceled(true); |
| } |
| |
| /** |
| * Creates a {@linkplain RenameResult} for a renaming operation that was |
| * not available (for example because the field attempted to be renamed |
| * does not yet exist (or does not exist any more) |
| * |
| * @return a new result |
| */ |
| @NonNull |
| public static RenameResult unavailable() { |
| return new RenameResult().setUnavailable(true); |
| } |
| |
| /** |
| * Creates a new {@linkplain RenameResult} for a successful renaming |
| * operation to the given name |
| * |
| * @param name the new name |
| * @return a new result |
| */ |
| @NonNull |
| public static RenameResult name(@Nullable String name) { |
| return new RenameResult().setName(name); |
| } |
| |
| /** |
| * Marks this result as canceled |
| * |
| * @param canceled whether the result was canceled |
| * @return this, for constructor chaining |
| */ |
| @NonNull |
| public RenameResult setCanceled(boolean canceled) { |
| mCanceled = canceled; |
| return this; |
| } |
| |
| /** |
| * Marks this result as unavailable |
| * |
| * @param unavailable whether this result was unavailable |
| * @return this, for constructor chaining |
| */ |
| @NonNull |
| public RenameResult setUnavailable(boolean unavailable) { |
| mUnavailable = unavailable; |
| return this; |
| } |
| |
| /** |
| * Sets the new name of the renaming operation |
| * |
| * @param name the new name |
| * @return this, for constructor chaining |
| */ |
| @NonNull |
| public RenameResult setName(@Nullable String name) { |
| mName = name; |
| return this; |
| } |
| |
| /** |
| * Marks this result as clearing the name (reverting it back to the default) |
| * |
| * @param clear whether the name was cleared |
| * @return this, for constructor chaining |
| */ |
| @NonNull |
| public RenameResult setCleared(boolean clear) { |
| mClear = clear; |
| return this; |
| } |
| |
| /** |
| * Returns whether this result represents a canceled renaming operation |
| * |
| * @return true if the operation was canceled |
| */ |
| public boolean isCanceled() { |
| return mCanceled; |
| } |
| |
| /** |
| * Returns whether this result represents an unavailable renaming operation |
| * |
| * @return true if the operation was not available |
| */ |
| public boolean isUnavailable() { |
| return mUnavailable; |
| } |
| |
| /** |
| * Returns whether this result represents a renaming back to the default (possibly |
| * clear) name. In this case, {@link #getName()} will return {@code null}. |
| * |
| * @return true if the name should be reset |
| */ |
| public boolean isCleared() { |
| return mClear; |
| } |
| |
| /** |
| * Returns the new name. |
| * |
| * @return the new name |
| */ |
| @Nullable |
| public String getName() { |
| return mName; |
| } |
| } |