hadoop FindOptions 源码

  • 2022-10-20
  • 浏览 (243)

haddop FindOptions 代码

文件路径:/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/fs/shell/find/FindOptions.java

/**
 * 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.fs.shell.find;

import java.io.InputStream;
import java.io.PrintStream;
import java.util.Date;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.shell.CommandFactory;

/**
 * Options to be used by the {@link Find} command and its {@link Expression}s.
 */
public class FindOptions {
  /** Output stream to be used. */
  private PrintStream out;

  /** Error stream to be used. */
  private PrintStream err;

  /** Input stream to be used. */
  private InputStream in;

  /**
   * Indicates whether the expression should be applied to the directory tree
   * depth first.
   */
  private boolean depthFirst = false;

  /** Indicates whether symbolic links should be followed. */
  private boolean followLink = false;

  /**
   * Indicates whether symbolic links specified as command arguments should be
   * followed.
   */
  private boolean followArgLink = false;

  /** Start time of the find process. */
  private long startTime = new Date().getTime();

  /**
   * Depth at which to start applying expressions.
   */
  private int minDepth = 0;

  /**
   * Depth at which to stop applying expressions.
   */
  private int maxDepth = Integer.MAX_VALUE;

  /** Factory for retrieving command classes. */
  private CommandFactory commandFactory;

  /** Configuration object. */
  private Configuration configuration = new Configuration();

  /**
   * Sets the output stream to be used.
   *
   * @param out output stream to be used
   */
  public void setOut(PrintStream out) {
    this.out = out;
  }

  /**
   * Returns the output stream to be used.
   *
   * @return output stream to be used
   */
  public PrintStream getOut() {
    return this.out;
  }

  /**
   * Sets the error stream to be used.
   *
   * @param err error stream to be used
   */
  public void setErr(PrintStream err) {
    this.err = err;
  }

  /**
   * Returns the error stream to be used.
   *
   * @return error stream to be used
   */
  public PrintStream getErr() {
    return this.err;
  }

  /**
   * Sets the input stream to be used.
   *
   * @param in input stream to be used
   */
  public void setIn(InputStream in) {
    this.in = in;
  }

  /**
   * Returns the input stream to be used.
   *
   * @return input stream to be used
   */
  public InputStream getIn() {
    return this.in;
  }

  /**
   * Sets flag indicating whether the expression should be applied to the
   * directory tree depth first.
   *
   * @param depthFirst true indicates depth first traversal
   */
  public void setDepthFirst(boolean depthFirst) {
    this.depthFirst = depthFirst;
  }

  /**
   * Should directory tree be traversed depth first?
   *
   * @return true indicate depth first traversal
   */
  public boolean isDepthFirst() {
    return this.depthFirst;
  }

  /**
   * Sets flag indicating whether symbolic links should be followed.
   *
   * @param followLink true indicates follow links
   */
  public void setFollowLink(boolean followLink) {
    this.followLink = followLink;
  }

  /**
   * Should symbolic links be follows?
   *
   * @return true indicates links should be followed
   */
  public boolean isFollowLink() {
    return this.followLink;
  }

  /**
   * Sets flag indicating whether command line symbolic links should be
   * followed.
   *
   * @param followArgLink true indicates follow links
   */
  public void setFollowArgLink(boolean followArgLink) {
    this.followArgLink = followArgLink;
  }

  /**
   * Should command line symbolic links be follows?
   *
   * @return true indicates links should be followed
   */
  public boolean isFollowArgLink() {
    return this.followArgLink;
  }

  /**
   * Returns the start time of this {@link Find} command.
   *
   * @return start time (in milliseconds since epoch)
   */
  public long getStartTime() {
    return this.startTime;
  }

  /**
   * Set the start time of this {@link Find} command.
   *
   * @param time start time (in milliseconds since epoch)
   */
  public void setStartTime(long time) {
    this.startTime = time;
  }

  /**
   * Returns the minimum depth for applying expressions.
   *
   * @return min depth
   */
  public int getMinDepth() {
    return this.minDepth;
  }

  /**
   * Sets the minimum depth for applying expressions.
   *
   * @param minDepth minimum depth
   */
  public void setMinDepth(int minDepth) {
    this.minDepth = minDepth;
  }

  /**
   * Returns the maximum depth for applying expressions.
   *
   * @return maximum depth
   */
  public int getMaxDepth() {
    return this.maxDepth;
  }

  /**
   * Sets the maximum depth for applying expressions.
   *
   * @param maxDepth maximum depth
   */
  public void setMaxDepth(int maxDepth) {
    this.maxDepth = maxDepth;
  }

  /**
   * Set the command factory.
   *
   * @param factory {@link CommandFactory}
   */
  public void setCommandFactory(CommandFactory factory) {
    this.commandFactory = factory;
  }

  /**
   * Return the command factory.
   *
   * @return {@link CommandFactory}
   */
  public CommandFactory getCommandFactory() {
    return this.commandFactory;
  }

  /**
   * Set the {@link Configuration}
   *
   * @param configuration {@link Configuration}
   */
  public void setConfiguration(Configuration configuration) {
    this.configuration = configuration;
  }

  /**
   * Return the {@link Configuration} return configuration {@link Configuration}
   * @return configuration.
   */
  public Configuration getConfiguration() {
    return this.configuration;
  }
}

相关信息

hadoop 源码目录

相关文章

hadoop And 源码

hadoop BaseExpression 源码

hadoop Expression 源码

hadoop ExpressionFactory 源码

hadoop FilterExpression 源码

hadoop Find 源码

hadoop Name 源码

hadoop Print 源码

hadoop Result 源码

0  赞