Make sure MountItems use @NonNull annotation

Summary:
This diff annotates MountItems classes with NonNull annotations, this will help analysis of nullability plus improving integration with Kotlin clients
Changelog: Add NonNull annotation to Fabric MountItems

Reviewed By: JoshuaGross

Differential Revision: D18010921

fbshipit-source-id: 4c2bded87f7af1ddb941b2a49e390e51984890c0
This commit is contained in:
David Vacca 2019-10-25 15:07:18 -07:00 коммит произвёл Facebook Github Bot
Родитель fa0155d0ea
Коммит 27d71fc725
17 изменённых файлов: 60 добавлений и 40 удалений

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.proguard.annotations.DoNotStrip;
import com.facebook.react.bridge.ReactMarker;
import com.facebook.react.bridge.ReactMarkerConstants;
@ -25,8 +26,10 @@ import com.facebook.systrace.Systrace;
@DoNotStrip
public class BatchMountItem implements MountItem {
private final MountItem[] mMountItems;
@NonNull private final MountItem[] mMountItems;
private final int mSize;
private final int mCommitNumber;
public BatchMountItem(MountItem[] items, int size, int commitNumber) {
@ -43,7 +46,7 @@ public class BatchMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
Systrace.beginSection(
Systrace.TRACE_TAG_REACT_JAVA_BRIDGE, "FabricUIManager::mountViews - " + mSize + " items");

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.fabric.mounting.MountingManager;
@ -15,21 +16,21 @@ import com.facebook.react.uimanager.ThemedReactContext;
public class CreateMountItem implements MountItem {
private final String mComponent;
@NonNull private final String mComponent;
private final int mRootTag;
private final int mReactTag;
private final ThemedReactContext mContext;
@NonNull private final ThemedReactContext mContext;
private final @Nullable ReadableMap mProps;
private final @Nullable StateWrapper mStateWrapper;
private final boolean mIsLayoutable;
public CreateMountItem(
ThemedReactContext context,
@NonNull ThemedReactContext context,
int rootTag,
int reactTag,
String component,
@NonNull String component,
@Nullable ReadableMap props,
StateWrapper stateWrapper,
@NonNull StateWrapper stateWrapper,
boolean isLayoutable) {
mContext = context;
mComponent = component;
@ -41,7 +42,7 @@ public class CreateMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.createView(
mContext, mComponent, mReactTag, mProps, mStateWrapper, mIsLayoutable);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class DeleteMountItem implements MountItem {
@ -18,7 +19,7 @@ public class DeleteMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.deleteView(mReactTag);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.fabric.mounting.MountingManager;
@ -25,7 +26,7 @@ public class DispatchCommandMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.receiveCommand(mReactTag, mCommandId, mCommandArgs);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.bridge.ReadableArray;
import com.facebook.react.fabric.mounting.MountingManager;
@ -14,18 +15,18 @@ import com.facebook.react.fabric.mounting.MountingManager;
public class DispatchStringCommandMountItem implements MountItem {
private final int mReactTag;
private final String mCommandId;
@NonNull private final String mCommandId;
private final @Nullable ReadableArray mCommandArgs;
public DispatchStringCommandMountItem(
int reactTag, String commandId, @Nullable ReadableArray commandArgs) {
int reactTag, @NonNull String commandId, @Nullable ReadableArray commandArgs) {
mReactTag = reactTag;
mCommandId = commandId;
mCommandArgs = commandArgs;
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.receiveCommand(mReactTag, mCommandId, mCommandArgs);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class InsertMountItem implements MountItem {
@ -22,7 +23,7 @@ public class InsertMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.addViewAt(mParentReactTag, mReactTag, mIndex);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import androidx.annotation.UiThread;
import com.facebook.react.fabric.mounting.MountingManager;
@ -14,5 +15,5 @@ public interface MountItem {
/** Execute this {@link MountItem} into the operation queue received by parameter. */
@UiThread
void execute(MountingManager mountingManager);
void execute(@NonNull MountingManager mountingManager);
}

Просмотреть файл

@ -10,6 +10,7 @@ package com.facebook.react.fabric.mounting.mountitems;
import static com.facebook.react.fabric.FabricUIManager.DEBUG;
import static com.facebook.react.fabric.FabricUIManager.TAG;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.common.logging.FLog;
import com.facebook.react.bridge.ReadableMap;
@ -20,21 +21,21 @@ import com.facebook.react.uimanager.ThemedReactContext;
/** {@link MountItem} that is used to pre-allocate views for JS components. */
public class PreAllocateViewMountItem implements MountItem {
private final String mComponent;
@NonNull private final String mComponent;
private final int mRootTag;
private final int mReactTag;
private final @Nullable ReadableMap mProps;
private final @Nullable StateWrapper mStateWrapper;
private final ThemedReactContext mContext;
private final @NonNull ThemedReactContext mContext;
private final boolean mIsLayoutable;
public PreAllocateViewMountItem(
ThemedReactContext context,
@NonNull ThemedReactContext context,
int rootTag,
int reactTag,
String component,
@NonNull String component,
@Nullable ReadableMap props,
StateWrapper stateWrapper,
@NonNull StateWrapper stateWrapper,
boolean isLayoutable) {
mContext = context;
mComponent = component;
@ -46,7 +47,7 @@ public class PreAllocateViewMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
if (DEBUG) {
FLog.d(TAG, "Executing pre-allocation of: " + toString());
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class RemoveDeleteMultiMountItem implements MountItem {
@ -18,7 +19,7 @@ public class RemoveDeleteMultiMountItem implements MountItem {
// `instruction*4 + 1`: react tag of view's parent
// `instruction*4 + 2`: index of view in parents' children instruction
// `instruction*4 + 3`: flags indicating if the view should be removed, and/or deleted
private int[] mMetadata;
@NonNull private int[] mMetadata;
// Bitfields of "flag", indicating if a view should be removed and/or deleted
private static final int REMOVE_FLAG = 1;
@ -31,12 +32,12 @@ public class RemoveDeleteMultiMountItem implements MountItem {
private static final int VIEW_INDEX_INDEX = 2;
private static final int FLAGS_INDEX = 3;
public RemoveDeleteMultiMountItem(int[] metadata) {
public RemoveDeleteMultiMountItem(@NonNull int[] metadata) {
mMetadata = metadata;
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
// First, go through instructions and remove all views that are marked
// for removal.
// Not all views that are removed are deleted, and not all deleted views

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class RemoveMountItem implements MountItem {
@ -22,7 +23,7 @@ public class RemoveMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.removeViewAt(mParentReactTag, mIndex);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class SendAccessibilityEvent implements MountItem {
@ -20,7 +21,7 @@ public class SendAccessibilityEvent implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.sendAccessibilityEvent(mReactTag, mEventType);
}

Просмотреть файл

@ -7,21 +7,22 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.events.EventEmitterWrapper;
import com.facebook.react.fabric.mounting.MountingManager;
public class UpdateEventEmitterMountItem implements MountItem {
private final EventEmitterWrapper mEventHandler;
@NonNull private final EventEmitterWrapper mEventHandler;
private final int mReactTag;
public UpdateEventEmitterMountItem(int reactTag, EventEmitterWrapper EventHandler) {
public UpdateEventEmitterMountItem(int reactTag, @NonNull EventEmitterWrapper EventHandler) {
mReactTag = reactTag;
mEventHandler = EventHandler;
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updateEventEmitter(mReactTag, mEventHandler);
}

Просмотреть файл

@ -10,6 +10,7 @@ package com.facebook.react.fabric.mounting.mountitems;
import android.annotation.TargetApi;
import android.os.Build;
import android.util.LayoutDirection;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
public class UpdateLayoutMountItem implements MountItem {
@ -31,8 +32,9 @@ public class UpdateLayoutMountItem implements MountItem {
mLayoutDirection = convertLayoutDirection(layoutDirection);
}
// TODO move this from here
@TargetApi(Build.VERSION_CODES.KITKAT)
private int convertLayoutDirection(int layoutDirection) {
private static int convertLayoutDirection(int layoutDirection) {
switch (layoutDirection) {
case 0:
return LayoutDirection.INHERIT;
@ -46,7 +48,7 @@ public class UpdateLayoutMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updateLayout(mReactTag, mX, mY, mWidth, mHeight);
}

Просмотреть файл

@ -7,25 +7,26 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.fabric.mounting.MountingManager;
public class UpdateLocalDataMountItem implements MountItem {
private final int mReactTag;
private final ReadableMap mNewLocalData;
@NonNull private final ReadableMap mNewLocalData;
public UpdateLocalDataMountItem(int reactTag, ReadableMap newLocalData) {
public UpdateLocalDataMountItem(int reactTag, @NonNull ReadableMap newLocalData) {
mReactTag = reactTag;
mNewLocalData = newLocalData;
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updateLocalData(mReactTag, mNewLocalData);
}
public ReadableMap getNewLocalData() {
public @NonNull ReadableMap getNewLocalData() {
return mNewLocalData;
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.fabric.mounting.MountingManager;
/**
@ -32,7 +33,7 @@ public class UpdatePaddingMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updatePadding(mReactTag, mLeft, mTop, mRight, mBottom);
}

Просмотреть файл

@ -7,21 +7,22 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import com.facebook.react.bridge.ReadableMap;
import com.facebook.react.fabric.mounting.MountingManager;
public class UpdatePropsMountItem implements MountItem {
private final int mReactTag;
private final ReadableMap mUpdatedProps;
@NonNull private final ReadableMap mUpdatedProps;
public UpdatePropsMountItem(int reactTag, ReadableMap updatedProps) {
public UpdatePropsMountItem(int reactTag, @NonNull ReadableMap updatedProps) {
mReactTag = reactTag;
mUpdatedProps = updatedProps;
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updateProps(mReactTag, mUpdatedProps);
}

Просмотреть файл

@ -7,6 +7,7 @@
package com.facebook.react.fabric.mounting.mountitems;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import com.facebook.react.fabric.mounting.MountingManager;
import com.facebook.react.uimanager.StateWrapper;
@ -22,7 +23,7 @@ public class UpdateStateMountItem implements MountItem {
}
@Override
public void execute(MountingManager mountingManager) {
public void execute(@NonNull MountingManager mountingManager) {
mountingManager.updateState(mReactTag, mStateWrapper);
}