Deletes AutoCodec.Strategy.SINGLETON now that we have @AutoCodec field tags.

This also gets rid of some static initialization cycles which we should try very hard to avoid in the future.

PiperOrigin-RevId: 187334087
diff --git a/src/main/java/com/google/devtools/build/lib/actions/ArtifactOwner.java b/src/main/java/com/google/devtools/build/lib/actions/ArtifactOwner.java
index 36f7b24..b8b62c9 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/ArtifactOwner.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/ArtifactOwner.java
@@ -29,9 +29,9 @@
    * An {@link ArtifactOwner} that just returns null for its label. Only for use with resolved
    * source artifacts and tests.
    */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   class NullArtifactOwner implements ArtifactOwner {
-    @VisibleForTesting public static final NullArtifactOwner INSTANCE = new NullArtifactOwner();
+    @AutoCodec @VisibleForTesting
+    public static final NullArtifactOwner INSTANCE = new NullArtifactOwner();
 
     private NullArtifactOwner() {}
 
diff --git a/src/main/java/com/google/devtools/build/lib/actions/EmptyRunfilesSupplier.java b/src/main/java/com/google/devtools/build/lib/actions/EmptyRunfilesSupplier.java
index ddab7c9..5cc2e52 100644
--- a/src/main/java/com/google/devtools/build/lib/actions/EmptyRunfilesSupplier.java
+++ b/src/main/java/com/google/devtools/build/lib/actions/EmptyRunfilesSupplier.java
@@ -18,15 +18,13 @@
 import com.google.common.collect.ImmutableMap;
 import com.google.common.collect.ImmutableSet;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Strategy;
 import com.google.devtools.build.lib.vfs.PathFragment;
 import java.util.Map;
 
 /** Empty implementation of RunfilesSupplier */
-@AutoCodec(strategy = Strategy.SINGLETON)
 public class EmptyRunfilesSupplier implements RunfilesSupplier {
 
-  public static final EmptyRunfilesSupplier INSTANCE = new EmptyRunfilesSupplier();
+  @AutoCodec public static final EmptyRunfilesSupplier INSTANCE = new EmptyRunfilesSupplier();
 
   private EmptyRunfilesSupplier() {}
 
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
index 933a1a8..a1f02fa 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/Runfiles.java
@@ -33,7 +33,6 @@
 import com.google.devtools.build.lib.packages.BuildType;
 import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Strategy;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.VisibleForSerialization;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
 import com.google.devtools.build.lib.skylarkinterface.SkylarkModule;
@@ -73,8 +72,6 @@
 )
 @AutoCodec
 public final class Runfiles {
-  public static ObjectCodec<Runfiles> CODEC = new Runfiles_AutoCodec();
-
   private static final Function<SymlinkEntry, Artifact> TO_ARTIFACT =
       new Function<SymlinkEntry, Artifact>() {
         @Override
@@ -83,12 +80,9 @@
         }
       };
 
-  @AutoCodec(strategy = Strategy.SINGLETON)
   @VisibleForSerialization
   static class DummyEmptyFilesSupplier implements EmptyFilesSupplier {
-    public static final ObjectCodec<DummyEmptyFilesSupplier> CODEC =
-        new Runfiles_DummyEmptyFilesSupplier_AutoCodec();
-    public static final DummyEmptyFilesSupplier INSTANCE = new DummyEmptyFilesSupplier();
+    @AutoCodec public static final DummyEmptyFilesSupplier INSTANCE = new DummyEmptyFilesSupplier();
 
     @Override
     public Iterable<PathFragment> getExtraPaths(Set<PathFragment> manifestPaths) {
diff --git a/src/main/java/com/google/devtools/build/lib/events/Location.java b/src/main/java/com/google/devtools/build/lib/events/Location.java
index 162678d..5865489 100644
--- a/src/main/java/com/google/devtools/build/lib/events/Location.java
+++ b/src/main/java/com/google/devtools/build/lib/events/Location.java
@@ -15,7 +15,6 @@
 package com.google.devtools.build.lib.events;
 
 import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.lib.vfs.Path;
 import com.google.devtools.build.lib.vfs.PathFragment;
@@ -36,9 +35,6 @@
   @AutoCodec
   @Immutable
   static final class LocationWithPathAndStartColumn extends Location {
-    public static final ObjectCodec<LocationWithPathAndStartColumn> CODEC =
-        new Location_LocationWithPathAndStartColumn_AutoCodec();
-
     private final PathFragment path;
     private final LineAndColumn startLineAndColumn;
 
@@ -219,14 +215,14 @@
    *   "23:2"
    *   "foo.cc:char offsets 123--456"
    *   "char offsets 123--456"
-   *</pre>
+   * </pre>
    *
    * <p>This version replace the package's path with the relative package path. I.e., if {@code
    * packagePath} is equivalent to "/absolute/path/to/workspace/pack/age" and {@code
    * relativePackage} is equivalent to "pack/age" then the result for the 2nd character of the 23rd
    * line of the "foo/bar.cc" file in "pack/age" would be "pack/age/foo/bar.cc:23:2" whereas with
    * {@link #print()} the result would be "/absolute/path/to/workspace/pack/age/foo/bar.cc:23:2".
-   * 
+   *
    * <p>If {@code packagePath} is not a parent of the location path, then the result of this
    * function is the same as the result of {@link #print()}.
    */
@@ -262,8 +258,6 @@
   @AutoCodec
   @Immutable
   public static final class LineAndColumn {
-    public static final ObjectCodec<LineAndColumn> CODEC = new Location_LineAndColumn_AutoCodec();
-
     private final int line;
     private final int column;
 
@@ -298,11 +292,7 @@
     }
   }
 
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
-  @AutoCodec.VisibleForSerialization
   static final class BuiltinLocation extends Location {
-    public static final BuiltinLocation INSTANCE = new BuiltinLocation();
-
     private BuiltinLocation() {
       super(0, 0);
     }
@@ -332,7 +322,7 @@
    * Dummy location for built-in functions which ensures that stack traces contain "nice" location
    * strings.
    */
-  public static final Location BUILTIN = BuiltinLocation.INSTANCE;
+  @AutoCodec public static final Location BUILTIN = new BuiltinLocation();
 
   /**
    * Returns the location in the format "filename:line".
@@ -343,7 +333,7 @@
     if (location == null) {
       return "";
     }
-    
+
     StringBuilder builder = new StringBuilder();
     PathFragment path = location.getPath();
     if (path != null) {
diff --git a/src/main/java/com/google/devtools/build/lib/rules/cpp/NoProcessing.java b/src/main/java/com/google/devtools/build/lib/rules/cpp/NoProcessing.java
index 9542149..f6a5bd0 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/cpp/NoProcessing.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/cpp/NoProcessing.java
@@ -18,17 +18,12 @@
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.actions.ExecException;
 import com.google.devtools.build.lib.rules.cpp.IncludeScanner.IncludeScannerSupplier;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Strategy;
 import javax.annotation.Nullable;
 
 /** Always performs no include processing and returns null. */
-@AutoCodec(strategy = Strategy.SINGLETON)
 public class NoProcessing implements IncludeProcessing {
-  public static final ObjectCodec<NoProcessing> CODEC = new NoProcessing_AutoCodec();
-
-  public static final NoProcessing INSTANCE = new NoProcessing();
+  @AutoCodec public static final NoProcessing INSTANCE = new NoProcessing();
 
   @Override
   public Iterable<Artifact> determineAdditionalInputs(
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
index 4454dbe..2465258 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/ContainingPackageLookupValue.java
@@ -28,7 +28,7 @@
  */
 public abstract class ContainingPackageLookupValue implements SkyValue {
 
-  public static final NoContainingPackage NONE = NoContainingPackage.INSTANCE;
+  @AutoCodec public static final NoContainingPackage NONE = new NoContainingPackage();
 
   /** Returns whether there is a containing package. */
   public abstract boolean hasContainingPackage();
@@ -50,10 +50,7 @@
   }
 
   /** Value indicating there is no containing package. */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   public static class NoContainingPackage extends ContainingPackageLookupValue {
-    public static final NoContainingPackage INSTANCE = new NoContainingPackage();
-
     private NoContainingPackage() {}
 
     @Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java
index edb9226..e752285 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/CoverageReportValue.java
@@ -16,7 +16,6 @@
 
 import com.google.devtools.build.lib.actions.ActionLookupValue;
 import com.google.devtools.build.lib.actions.Actions.GeneratingActions;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.skyframe.SkyFunctionName;
 
@@ -26,24 +25,18 @@
 public class CoverageReportValue extends ActionLookupValue {
 
   // There should only ever be one CoverageReportValue value in the graph.
-  public static final CoverageReportKey COVERAGE_REPORT_KEY = CoverageReportKey.INSTANCE;
+  @AutoCodec public static final CoverageReportKey COVERAGE_REPORT_KEY = new CoverageReportKey();
 
   CoverageReportValue(GeneratingActions generatingActions, boolean removeActionsAfterEvaluation) {
     super(generatingActions, removeActionsAfterEvaluation);
   }
 
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   static class CoverageReportKey extends ActionLookupKey {
-    static final CoverageReportKey INSTANCE = new CoverageReportKey();
-    static final ObjectCodec<CoverageReportKey> CODEC =
-        new CoverageReportValue_CoverageReportKey_AutoCodec();
-
     private CoverageReportKey() {}
 
     @Override
     public SkyFunctionName functionName() {
       return SkyFunctions.COVERAGE_REPORT;
     }
-
   }
 }
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
index 0c78c40..c76a7ad 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/PackageLookupValue.java
@@ -38,12 +38,17 @@
  */
 public abstract class PackageLookupValue implements SkyValue {
 
+  @AutoCodec
   public static final NoBuildFilePackageLookupValue NO_BUILD_FILE_VALUE =
-      NoBuildFilePackageLookupValue.INSTANCE;
+      new NoBuildFilePackageLookupValue();
+
+  @AutoCodec
   public static final DeletedPackageLookupValue DELETED_PACKAGE_VALUE =
-      DeletedPackageLookupValue.INSTANCE;
+      new DeletedPackageLookupValue();
+
+  @AutoCodec
   public static final NoRepositoryPackageLookupValue NO_SUCH_REPOSITORY_VALUE =
-      NoRepositoryPackageLookupValue.INSTANCE;
+      new NoRepositoryPackageLookupValue();
 
   enum ErrorReason {
     /** There is no BUILD file. */
@@ -191,10 +196,7 @@
   }
 
   /** Marker value for no build file found. */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   public static class NoBuildFilePackageLookupValue extends UnsuccessfulPackageLookupValue {
-    static final NoBuildFilePackageLookupValue INSTANCE = new NoBuildFilePackageLookupValue();
-
     private NoBuildFilePackageLookupValue() {
     }
 
@@ -317,10 +319,7 @@
   }
 
   /** Marker value for a deleted package. */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   public static class DeletedPackageLookupValue extends UnsuccessfulPackageLookupValue {
-    static final DeletedPackageLookupValue INSTANCE = new DeletedPackageLookupValue();
-
     private DeletedPackageLookupValue() {
     }
 
@@ -339,10 +338,7 @@
    * Marker value for repository we could not find. This can happen when looking for a label that
    * specifies a non-existent repository.
    */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   public static class NoRepositoryPackageLookupValue extends UnsuccessfulPackageLookupValue {
-    static final NoRepositoryPackageLookupValue INSTANCE = new NoRepositoryPackageLookupValue();
-
     private NoRepositoryPackageLookupValue() {}
 
     @Override
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
index 02030e4..0bbff1c 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/WorkspaceStatusValue.java
@@ -16,7 +16,6 @@
 import com.google.devtools.build.lib.actions.ActionLookupValue;
 import com.google.devtools.build.lib.actions.Artifact;
 import com.google.devtools.build.lib.analysis.WorkspaceStatusAction;
-import com.google.devtools.build.lib.skyframe.serialization.ObjectCodec;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
 import com.google.devtools.build.skyframe.SkyFunctionName;
 import com.google.devtools.build.skyframe.SkyKey;
@@ -53,11 +52,9 @@
   }
 
   /** {@link SkyKey} for {@link WorkspaceStatusValue}. */
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   public static class BuildInfoKey extends ActionLookupKey {
-    @AutoCodec.VisibleForSerialization static final BuildInfoKey INSTANCE = new BuildInfoKey();
-    public static final ObjectCodec<BuildInfoKey> CODEC =
-        new WorkspaceStatusValue_BuildInfoKey_AutoCodec();
+    @AutoCodec @AutoCodec.VisibleForSerialization
+    static final BuildInfoKey INSTANCE = new BuildInfoKey();
 
     private BuildInfoKey() {}
 
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
index 867dbca..e6a687d 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodec.java
@@ -70,12 +70,6 @@
      * instance for deserialization.
      */
     PUBLIC_FIELDS,
-    /**
-     * For use with classes that are singleton.
-     *
-     * <p>The serialized class must have a codec accessible, static INSTANCE field.
-     */
-    SINGLETON
   }
 
   /**
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
index d7c2e8a..250e391 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec/AutoCodecProcessor.java
@@ -109,9 +109,6 @@
           case PUBLIC_FIELDS:
             codecClassBuilder = buildClassWithPublicFieldsStrategy(encodedType);
             break;
-          case SINGLETON:
-            codecClassBuilder = buildClassWithSingletonStrategy(encodedType, env);
-            break;
           default:
             throw new IllegalArgumentException("Unknown strategy: " + annotation.strategy());
         }
@@ -142,6 +139,7 @@
     return true;
   }
 
+  @SuppressWarnings("MutableConstantField")
   private static final Collection<Modifier> REQUIRED_SINGLETON_MODIFIERS =
       ImmutableList.of(Modifier.STATIC, Modifier.FINAL);
 
@@ -532,20 +530,6 @@
     return Optional.empty();
   }
 
-  private static TypeSpec.Builder buildClassWithSingletonStrategy(
-      TypeElement encodedType, ProcessingEnvironment env) {
-    TypeSpec.Builder codecClassBuilder =
-        AutoCodecUtil.initializeCodecClassBuilder(encodedType, env);
-    // Serialization is a no-op.
-    codecClassBuilder.addMethod(
-        AutoCodecUtil.initializeSerializeMethodBuilder(encodedType, env).build());
-    MethodSpec.Builder deserializeMethodBuilder =
-        AutoCodecUtil.initializeDeserializeMethodBuilder(encodedType, env);
-    deserializeMethodBuilder.addStatement("return $T.INSTANCE", TypeName.get(encodedType.asType()));
-    codecClassBuilder.addMethod(deserializeMethodBuilder.build());
-    return codecClassBuilder;
-  }
-
   /** True when {@code type} has the same type as {@code clazz}. */
   private boolean matchesType(TypeMirror type, Class<?> clazz) {
     return env.getTypeUtils()
diff --git a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
index bd31c4f..878dd67 100644
--- a/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
+++ b/src/main/java/com/google/devtools/build/skyframe/EmptySkyValue.java
@@ -21,9 +21,8 @@
  * A SkyValue with no attached data. Preferable to a specialized empty value class to minimize
  * bloat.
  */
-@AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
 public final class EmptySkyValue implements SkyValue {
-  public static final EmptySkyValue INSTANCE = new EmptySkyValue();
+  @AutoCodec public static final EmptySkyValue INSTANCE = new EmptySkyValue();
 
   private EmptySkyValue() {}
 
diff --git a/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java b/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
index 2d6de96..6d44fbe 100644
--- a/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
+++ b/src/main/java/com/google/devtools/build/skyframe/ErrorTransienceValue.java
@@ -21,11 +21,10 @@
  * A value that represents "error transience", i.e. anything which may have caused an unexpected
  * failure. Is not equal to anything, including itself, in order to force re-evaluation.
  */
-@AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
 public final class ErrorTransienceValue implements SkyValue {
   public static final SkyFunctionName FUNCTION_NAME = SkyFunctionName.create("ERROR_TRANSIENCE");
   public static final SkyKey KEY = LegacySkyKey.create(FUNCTION_NAME, "ERROR_TRANSIENCE");
-  public static final ErrorTransienceValue INSTANCE = new ErrorTransienceValue();
+  @AutoCodec public static final ErrorTransienceValue INSTANCE = new ErrorTransienceValue();
 
   private ErrorTransienceValue() {}
 
diff --git a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
index 04aa0d7..e3bd837 100644
--- a/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
+++ b/src/test/java/com/google/devtools/build/lib/actions/util/ActionsTestUtil.java
@@ -65,7 +65,6 @@
 import com.google.devtools.build.lib.exec.SingleBuildFileCache;
 import com.google.devtools.build.lib.packages.AspectDescriptor;
 import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec;
-import com.google.devtools.build.lib.skyframe.serialization.autocodec.AutoCodec.Strategy;
 import com.google.devtools.build.lib.util.FileType;
 import com.google.devtools.build.lib.util.ResourceUsage;
 import com.google.devtools.build.lib.util.io.FileOutErr;
@@ -267,10 +266,8 @@
           null,
           null);
 
-  @AutoCodec(strategy = Strategy.SINGLETON)
   static class NullArtifactOwner implements ArtifactOwner {
-    public static final ActionsTestUtil.NullArtifactOwner INSTANCE =
-        new ActionsTestUtil.NullArtifactOwner();
+    private NullArtifactOwner() {}
 
     @Override
     public Label getLabel() {
@@ -278,7 +275,7 @@
     }
   }
 
-  public static final ArtifactOwner NULL_ARTIFACT_OWNER = NullArtifactOwner.INSTANCE;
+  @AutoCodec public static final ArtifactOwner NULL_ARTIFACT_OWNER = new NullArtifactOwner();
 
   /** An unchecked exception class for action conflicts. */
   public static class UncheckedActionConflictException extends RuntimeException {
diff --git a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
index 6fc7684..40c74d0 100644
--- a/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skyframe/TimestampBuilderTestCase.java
@@ -111,8 +111,10 @@
  * The common code that's shared between various builder tests.
  */
 public abstract class TimestampBuilderTestCase extends FoundationTestCase {
+  @AutoCodec
   protected static final ActionLookupValue.ActionLookupKey ACTION_LOOKUP_KEY =
       new SingletonActionLookupKey();
+
   protected static final Predicate<Action> ALWAYS_EXECUTE_FILTER = Predicates.alwaysTrue();
   protected static final String CYCLE_MSG = "Yarrrr, there be a cycle up in here";
 
@@ -501,10 +503,7 @@
     }
   }
 
-  @AutoCodec(strategy = AutoCodec.Strategy.SINGLETON)
   static class SingletonActionLookupKey extends ActionLookupValue.ActionLookupKey {
-    public static final SingletonActionLookupKey INSTANCE = new SingletonActionLookupKey();
-
     @Override
     public SkyFunctionName functionName() {
       return SkyFunctions.CONFIGURED_TARGET;