All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.zeroturnaround.exec.ProcessAttributes Maven / Gradle / Ivy

The newest version!
/*
 * Copyright (C) 2014 ZeroTurnaround 
 * Contains fragments of code from Apache Commons Exec, rights owned
 * by Apache Software Foundation (ASF).
 *
 * 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 org.zeroturnaround.exec;

import java.io.File;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * Immutable set of attributes used to start a process.
 */
class ProcessAttributes {

  /**
   * The external program and its arguments.
   */
  private final List command;

  /**
   * Working directory, null in case of current working directory.
   */
  private final File directory;

  /**
   * Environment variables which are added (removed in case of null values) to the started process.
   */
  private final Map environment;

  /**
   * Set of accepted exit codes or null if all exit codes are allowed.
   */
  private final Set allowedExitValues;

  public ProcessAttributes(List command, File directory, Map environment, Set allowedExitValues) {
    this.command = command;
    this.directory = directory;
    this.environment = environment;
    this.allowedExitValues = allowedExitValues;
  }

  public List getCommand() {
    return command;
  }

  public File getDirectory() {
    return directory;
  }

  public Map getEnvironment() {
    return environment;
  }

  public Set getAllowedExitValues() {
    return allowedExitValues;
  }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy