/*
 * Copyright 2016-present Facebook, Inc.
 *
 * 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.facebook.buck.config;

import org.immutables.value.Value;

/**
 * A view of a particular config class.
 *
 * <p>A config class may implement extra state and accessors beyond the bare Config. ConfigViews
 * provides domain-specific accessors to Config values.
 *
 * <p>ConfigViews should be defined following this pattern.
 *
 * <pre>{@code
 * @Value.Immutable(builder=false, copy=false)
 * @BuckStyleImmutable
 * abstract class AbstractFooConfigView implements ConfigView<FooConfig> {
 *
 *   // Additional accessors.
 * }
 *
 * }</pre>
 *
 * Config views should also not declare any additional non-derived immutable fields if it's to be
 * used with {@link ConfigViewCache}. As the cache assumes one-to-one correspondence with the main
 * config instance, it uses the generated factory {@code FooConfigView.of(T delegate)} to
 * instantiate the view.
 *
 * @param <T> Config type.
 */
public interface ConfigView<T> {
  @Value.Parameter
  T getDelegate();
}

@@ -948,19 +948,24 @@
 pre%3E
-%7B@code%0A *
+%0A * %7B@literal
  @
+%7D
 Valu
@@ -1006,17 +1006,28 @@
 lse)%0A * 
-@
+%7B@literal @%7D
 BuckStyl
@@ -1039,16 +1039,17 @@
 table%0A *
+ 
  abstrac
@@ -1115,19 +1115,17 @@
 ig%3E %7B%0A *
-%0A *
+ 
    // Ad
@@ -1150,18 +1150,15 @@
 .%0A *
+ 
  %7D%0A *
-%0A * %7D
+ 
 %3C/pr

Fix code example in ConfigView javadoc