source: proiecte/HadoopJUnit/hadoop-0.20.1/src/core/org/apache/hadoop/fs/permission/FsAction.java @ 120

Last change on this file since 120 was 120, checked in by (none), 14 years ago

Added the mail files for the Hadoop JUNit Project

  • Property svn:executable set to *
File size: 1.8 KB
Line 
1/**
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements.  See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership.  The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License.  You may obtain a copy of the License at
9 *
10 *     http://www.apache.org/licenses/LICENSE-2.0
11 *
12 * Unless required by applicable law or agreed to in writing, software
13 * distributed under the License is distributed on an "AS IS" BASIS,
14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 * See the License for the specific language governing permissions and
16 * limitations under the License.
17 */
18package org.apache.hadoop.fs.permission;
19
20/**
21 * File system actions, e.g. read, write, etc.
22 */
23public enum FsAction {
24  // POSIX style
25  NONE("---"),
26  EXECUTE("--x"),
27  WRITE("-w-"),
28  WRITE_EXECUTE("-wx"),
29  READ("r--"),
30  READ_EXECUTE("r-x"),
31  READ_WRITE("rw-"),
32  ALL("rwx");
33
34  /** Retain reference to value array. */
35  private final static FsAction[] vals = values();
36
37  /** Symbolic representation */
38  public final String SYMBOL;
39
40  private FsAction(String s) {
41    SYMBOL = s;
42  }
43
44  /**
45   * Return true if this action implies that action.
46   * @param that
47   */
48  public boolean implies(FsAction that) {
49    if (that != null) {
50      return (ordinal() & that.ordinal()) == that.ordinal();
51    }
52    return false;
53  }
54
55  /** AND operation. */
56  public FsAction and(FsAction that) {
57    return vals[ordinal() & that.ordinal()];
58  }
59  /** OR operation. */
60  public FsAction or(FsAction that) {
61    return vals[ordinal() | that.ordinal()];
62  }
63  /** NOT operation. */
64  public FsAction not() {
65    return vals[7 - ordinal()];
66  }
67}
Note: See TracBrowser for help on using the repository browser.