    001    /*
    002     * Copyright (c) 2007-2014 Concurrent, Inc. All Rights Reserved.
    003     *
    004     * Project and contact information: http://www.cascading.org/
    005     *
    006     * This file is part of the Cascading project.
    007     *
    008     * Licensed under the Apache License, Version 2.0 (the "License");
    009     * you may not use this file except in compliance with the License.
    010     * You may obtain a copy of the License at
    011     *
    012     *     http://www.apache.org/licenses/LICENSE-2.0
    013     *
    014     * Unless required by applicable law or agreed to in writing, software
    015     * distributed under the License is distributed on an "AS IS" BASIS,
    016     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    017     * See the License for the specific language governing permissions and
    018     * limitations under the License.
    019     */
    020
    021    package cascading.management.annotation;
    022
    023    /**
    024     * Visibility controls whether a certain {@link cascading.management.annotation.Property} is visible to a certain
    025     * audience.
    026     * <p/>
    027     * <lu>
    028     * <li>{@link #PRIVATE} - recommended that only a developer or team/project member have access to the value</li>
    029     * <li>{@link #PROTECTED} - recommended for interested and authorized parties</li>
    030     * <li>{@link #PUBLIC} - recommended for use as general purpose information</li>
    031     * </lu>
    032     * <p/>
    033     * All properties in Cascading using the {@link cascading.management.annotation.Property} annotation are marked as
    034     * {@link #PRIVATE}.
    035     * <p/>
    036     * Except for {@link cascading.tap.Tap#getIdentifier()} which defines the {@link cascading.management.annotation.Sanitizer}
    037     * implementation {@link cascading.management.annotation.URISanitizer} which attempts to cleanse the URI identifier
    038     * for each of the above visibilities.
    039     * <p/>
    040     * It is up to the implementation of a {@link cascading.management.DocumentService} to interpret and use these
    041     * values.
    042     * <p/>
    043     * Cascading does not enforce any restrictions related to the values, they are considered informative.
    044     * <p/>
    045     * To prevent serialization of any value via the registered {@link cascading.management.DocumentService}, do not
    046     * mark a field with the Property annotation, or configure the service appropriately.
    047     */
    048    public enum Visibility
    049      {
    050        PRIVATE,
    051        PROTECTED,
    052        PUBLIC
    053      }