// Path: src/main/java/jcommon/process/platform/IProcessLauncher.java
// public interface IProcessLauncher extends IPlatformImplementation {
//   public static class Default implements IProcessLauncher, Serializable {
//     public static final IProcessLauncher INSTANCE = new Default();
// 
//     private Default() {
//       //Prevent outside instantiation
//     }
// 
//     private Object readResolve() {
//       return INSTANCE;
//     }
// 
//     @Override
//     public final IEnvironmentVariableBlock requestParentEnvironmentVariableBlock() {
//       return null;
//     }
// 
//     @Override
//     public final IProcess launch(final boolean inherit_parent_environment, final IEnvironmentVariableBlock environment_variables, final String[] command_line, final IProcessListener[] listeners) {
//       throw new UnsupportedOperationException("launch");
//     }
//   }
// 
//   public static final IProcessLauncher DEFAULT = Default.INSTANCE;
// 
//   IEnvironmentVariableBlock requestParentEnvironmentVariableBlock();
//   IProcess launch(final boolean inherit_parent_environment, final IEnvironmentVariableBlock environment_variables, final String[] command_line, final IProcessListener[] listeners);
// }


import java.util.*;
import jcommon.core.StringUtil;
import jcommon.core.platform.PlatformProviders;
import jcommon.process.platform.IProcessLauncher;
/*
  Copyright (C) 2013 the original author or authors.

  See the LICENSE.txt file distributed with this work for additional
  information regarding copyright ownership.

  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 jcommon.process;



/**
 * Configures a child process for execution using the builder pattern.
 *
 * This class is <b>not</b> thread safe.
 */
@SuppressWarnings("unused")
public class ProcessBuilder implements Cloneable {
// Path: src/main/java/jcommon/process/platform/IProcessLauncher.java
// public interface IProcessLauncher extends IPlatformImplementation {
//   public static class Default implements IProcessLauncher, Serializable {
//     public static final IProcessLauncher INSTANCE = new Default();
// 
//     private Default() {
//       //Prevent outside instantiation
//     }
// 
//     private Object readResolve() {
//       return INSTANCE;
//     }
// 
//     @Override
//     public final IEnvironmentVariableBlock requestParentEnvironmentVariableBlock() {
//       return null;
//     }
// 
//     @Override
//     public final IProcess launch(final boolean inherit_parent_environment, final IEnvironmentVariableBlock environment_variables, final String[] command_line, final IProcessListener[] listeners) {
//       throw new UnsupportedOperationException("launch");
//     }
//   }
// 
//   public static final IProcessLauncher DEFAULT = Default.INSTANCE;
// 
//   IEnvironmentVariableBlock requestParentEnvironmentVariableBlock();
//   IProcess launch(final boolean inherit_parent_environment, final IEnvironmentVariableBlock environment_variables, final String[] command_line, final IProcessListener[] listeners);
// }


// Path: src/main/java/jcommon/process/ProcessBuilder.java
import java.util.*;
import jcommon.core.StringUtil;
import jcommon.core.platform.PlatformProviders;
import jcommon.process.platform.IProcessLauncher;

/*
  Copyright (C) 2013 the original author or authors.

  See the LICENSE.txt file distributed with this work for additional
  information regarding copyright ownership.

  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 jcommon.process;



/**
 * Configures a child process for execution using the builder pattern.
 *
 * This class is <b>not</b> thread safe.
 */
@SuppressWarnings("unused")
public class ProcessBuilder implements Cloneable {
  private static final IProcessLauncher impl = PlatformProviders.find(IProcessLauncher.class, IProcessLauncher.DEFAULT);