/*
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you 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 org.apache.hadoop.classification;

import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Annotation to inform users of a package, class or method's intended audience.
 */
@InterfaceAudience.Public
@InterfaceStability.Evolving
public class InterfaceAudience {
  /**
   * Intended for use by any project or application.
   */
  @Documented
  @Retention(RetentionPolicy.RUNTIME)
  public @interface Public {};
  
  /**
   * Intended only for the project(s) specified in the annotation.
   * For example, "Common", "HDFS", "MapReduce", "ZooKeeper", "HBase".
   */
  @Documented
  @Retention(RetentionPolicy.RUNTIME)
  public @interface LimitedPrivate {
    String[] value();
  };
  
  /**
   * Intended for use only within Hadoop itself.
   */
  @Documented
  @Retention(RetentionPolicy.RUNTIME)
  public @interface Private {};

  private InterfaceAudience() {} // Audience can't exist on its own
}

@@ -1,10 +1,11 @@
 /*
+%0D
 %0A * Lice
@@ -58,16 +58,17 @@
 nder one
+%0D
 %0A * or m
@@ -119,24 +119,25 @@
  NOTICE file
+%0D
 %0A * distribu
@@ -181,16 +181,17 @@
 ormation
+%0D
 %0A * rega
@@ -244,16 +244,17 @@
 his file
+%0D
 %0A * to y
@@ -298,16 +298,17 @@
 2.0 (the
+%0D
 %0A * %22Lic
@@ -361,16 +361,17 @@
 mpliance
+%0D
 %0A * with
@@ -424,19 +424,21 @@
 cense at
+%0D
 %0A *
+%0D
 %0A *     
@@ -479,19 +479,21 @@
 ENSE-2.0
+%0D
 %0A *
+%0D
 %0A * Unle
@@ -555,16 +555,17 @@
 software
+%0D
 %0A * dist
@@ -625,16 +625,17 @@
 %22 BASIS,
+%0D
 %0A * WITH
@@ -702,16 +702,17 @@
 implied.
+%0D
 %0A * See 
@@ -774,16 +774,17 @@
 ions and
+%0D
 %0A * limi
@@ -809,20 +809,22 @@
 License.
+%0D
 %0A */
+%0D
 %0Apackage
@@ -857,17 +857,19 @@
 ication;
-%0A
+%0D%0A%0D
 %0Aimport 
@@ -900,16 +900,17 @@
 umented;
+%0D
 %0Aimport 
@@ -940,16 +940,17 @@
 tention;
+%0D
 %0Aimport 
@@ -990,13 +990,16 @@
 icy;
-%0A
+%0D%0A%0D
 %0A/**
+%0D
 %0A * 
@@ -1075,20 +1075,22 @@
 udience.
+%0D
 %0A */
+%0D
 %0A@Interf
@@ -1107,16 +1107,17 @@
 e.Public
+%0D
 %0A@Interf
@@ -1137,16 +1137,17 @@
 Evolving
+%0D
 %0Apublic 
@@ -1171,22 +1171,24 @@
 dience %7B
+%0D
 %0A  /**
+%0D
 %0A   * In
@@ -1232,22 +1232,24 @@
 ication.
+%0D
 %0A   */
+%0D
 %0A  @Docu
@@ -1246,32 +1246,33 @@
 /%0D%0A  @Documented
+%0D
 %0A  @Retention(Re
@@ -1285,32 +1285,33 @@
 nPolicy.RUNTIME)
+%0D
 %0A  public @inter
@@ -1325,25 +1325,28 @@
 blic %7B%7D;
+%0D
 %0A  
+%0D
 %0A  /**
+%0D
 %0A   * In
@@ -1404,16 +1404,17 @@
 otation.
+%0D
 %0A   * Fo
@@ -1476,22 +1476,24 @@
 %22HBase%22.
+%0D
 %0A   */
+%0D
 %0A  @Docu
@@ -1490,32 +1490,33 @@
 /%0D%0A  @Documented
+%0D
 %0A  @Retention(Re
@@ -1529,32 +1529,33 @@
 nPolicy.RUNTIME)
+%0D
 %0A  public @inter
@@ -1575,16 +1575,17 @@
 rivate %7B
+%0D
 %0A    Str
@@ -1602,22 +1602,26 @@
 e();
+%0D
 %0A  %7D;
+%0D
 %0A  
+%0D
 %0A  /**
+%0D
 %0A   
@@ -1665,22 +1665,24 @@
  itself.
+%0D
 %0A   */
+%0D
 %0A  @Docu
@@ -1687,16 +1687,17 @@
 cumented
+%0D
 %0A  @Rete
@@ -1726,16 +1726,17 @@
 RUNTIME)
+%0D
 %0A  publi
@@ -1759,17 +1759,19 @@
 vate %7B%7D;
-%0A
+%0D%0A%0D
 %0A  priva
@@ -1834,7 +1834,42 @@
  own
+. So make the constructor private%0D
 %0A%7D
+%0D
 %0A

Test - Just appended the comment 'Audience can't exist on its own' with 'hence the private constructor' comment