text:
/**
 */
package org.remus.cmdline.commandLine;

import org.eclipse.emf.ecore.EAttribute;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EEnum;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.EReference;

/**
 *
 * The Package for the model.
 * It contains accessors for the meta objects to represent
 *

 *
each class,

 *
each feature of each class,

 *
each enum,

 *
and each data type

 *

 *
 * @see org.remus.cmdline.commandLine.CommandLineFactory
 * @model kind="package"
 * @generated
 */
public interface CommandLinePackage extends EPackage
{
  /**
   * The package name.
   *
   *
   * @generated
   */
  String eNAME = "commandLine";

  /**
   * The package namespace URI.
   *
   *
   * @generated
   */
  String eNS_URI = "http://www.remus-software.org/cmdline/1.0";

  /**
   * The package namespace name.
   *
   *
   * @generated
   */
  String eNS_PREFIX = "commandLine";

  /**
   * The singleton instance of the package.
   *
   *
   * @generated
   */
  CommandLinePackage eINSTANCE = org.remus.cmdline.commandLine.impl.CommandLinePackageImpl.init();

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.ModelImpl Model}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.ModelImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getModel()
   * @generated
   */
  int MODEL = 0;

  /**
   * The feature id for the 'Programs' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int MODEL__PROGRAMS = 0;

  /**
   * The feature id for the 'System' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int MODEL__SYSTEM = 1;

  /**
   * The number of structural features of the 'Model' class.
   *
   *
   * @generated
   * @ordered
   */
  int MODEL_FEATURE_COUNT = 2;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.SystemImpl System}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.SystemImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getSystem()
   * @generated
   */
  int SYSTEM = 1;

  /**
   * The feature id for the 'Name' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int SYSTEM__NAME = 0;

  /**
   * The feature id for the 'Port' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int SYSTEM__PORT = 1;

  /**
   * The feature id for the 'Version' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int SYSTEM__VERSION = 2;

  /**
   * The feature id for the 'Program' reference list.
   *
   *
   * @generated
   * @ordered
   */
  int SYSTEM__PROGRAM = 3;

  /**
   * The number of structural features of the 'System' class.
   *
   *
   * @generated
   * @ordered
   */
  int SYSTEM_FEATURE_COUNT = 4;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.ProgramImpl Program}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.ProgramImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getProgram()
   * @generated
   */
  int PROGRAM = 2;

  /**
   * The feature id for the 'Name' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int PROGRAM__NAME = 0;

  /**
   * The feature id for the 'Path' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int PROGRAM__PATH = 1;

  /**
   * The feature id for the 'Functions' containment reference list.
   *
   *
   * @generated
   * @ordered
   */
  int PROGRAM__FUNCTIONS = 2;

  /**
   * The number of structural features of the 'Program' class.
   *
   *
   * @generated
   * @ordered
   */
  int PROGRAM_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.ParamImpl Param}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.ParamImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getParam()
   * @generated
   */
  int PARAM = 3;

  /**
   * The feature id for the 'Name' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int PARAM__NAME = 0;

  /**
   * The number of structural features of the 'Param' class.
   *
   *
   * @generated
   * @ordered
   */
  int PARAM_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.FunctionImpl Function}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.FunctionImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getFunction()
   * @generated
   */
  int FUNCTION = 4;

  /**
   * The feature id for the 'Name' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__NAME = 0;

  /**
   * The feature id for the 'Print Out Mode' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__PRINT_OUT_MODE = 1;

  /**
   * The feature id for the 'Desc' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__DESC = 2;

  /**
   * The feature id for the 'Docurl' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__DOCURL = 3;

  /**
   * The feature id for the 'Input' containment reference list.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__INPUT = 4;

  /**
   * The feature id for the 'Output' containment reference list.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__OUTPUT = 5;

  /**
   * The feature id for the 'Option Blocks' containment reference list.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION__OPTION_BLOCKS = 6;

  /**
   * The number of structural features of the 'Function' class.
   *
   *
   * @generated
   * @ordered
   */
  int FUNCTION_FEATURE_COUNT = 7;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.InputDataDefinitionImpl Input Data Definition}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.InputDataDefinitionImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getInputDataDefinition()
   * @generated
   */
  int INPUT_DATA_DEFINITION = 5;

  /**
   * The feature id for the 'Input' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int INPUT_DATA_DEFINITION__INPUT = 0;

  /**
   * The feature id for the 'Type' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int INPUT_DATA_DEFINITION__TYPE = 1;

  /**
   * The feature id for the 'Doc' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int INPUT_DATA_DEFINITION__DOC = 2;

  /**
   * The number of structural features of the 'Input Data Definition' class.
   *
   *
   * @generated
   * @ordered
   */
  int INPUT_DATA_DEFINITION_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.OutputDataDefinitionImpl Output Data Definition}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.OutputDataDefinitionImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOutputDataDefinition()
   * @generated
   */
  int OUTPUT_DATA_DEFINITION = 6;

  /**
   * The feature id for the 'Input' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int OUTPUT_DATA_DEFINITION__INPUT = 0;

  /**
   * The feature id for the 'Type' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int OUTPUT_DATA_DEFINITION__TYPE = 1;

  /**
   * The feature id for the 'Doc' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int OUTPUT_DATA_DEFINITION__DOC = 2;

  /**
   * The number of structural features of the 'Output Data Definition' class.
   *
   *
   * @generated
   * @ordered
   */
  int OUTPUT_DATA_DEFINITION_FEATURE_COUNT = 3;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.OptionImpl Option}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.OptionImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOption()
   * @generated
   */
  int OPTION = 7;

  /**
   * The feature id for the 'Param' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int OPTION__PARAM = 0;

  /**
   * The number of structural features of the 'Option' class.
   *
   *
   * @generated
   * @ordered
   */
  int OPTION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.ExpressionImpl Expression}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.ExpressionImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getExpression()
   * @generated
   */
  int EXPRESSION = 8;

  /**
   * The feature id for the 'Param' reference.
   *
   *
   * @generated
   * @ordered
   */
  int EXPRESSION__PARAM = 0;

  /**
   * The number of structural features of the 'Expression' class.
   *
   *
   * @generated
   * @ordered
   */
  int EXPRESSION_FEATURE_COUNT = 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.StringLiteralImpl String Literal}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.StringLiteralImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getStringLiteral()
   * @generated
   */
  int STRING_LITERAL = 9;

  /**
   * The feature id for the 'Param' reference.
   *
   *
   * @generated
   * @ordered
   */
  int STRING_LITERAL__PARAM = EXPRESSION__PARAM;

  /**
   * The feature id for the 'Value' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int STRING_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the 'String Literal' class.
   *
   *
   * @generated
   * @ordered
   */
  int STRING_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.IntegerLiteralImpl Integer Literal}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.IntegerLiteralImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getIntegerLiteral()
   * @generated
   */
  int INTEGER_LITERAL = 10;

  /**
   * The feature id for the 'Param' reference.
   *
   *
   * @generated
   * @ordered
   */
  int INTEGER_LITERAL__PARAM = EXPRESSION__PARAM;

  /**
   * The feature id for the 'Value' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int INTEGER_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the 'Integer Literal' class.
   *
   *
   * @generated
   * @ordered
   */
  int INTEGER_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.DoubleLiteralImpl Double Literal}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.DoubleLiteralImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getDoubleLiteral()
   * @generated
   */
  int DOUBLE_LITERAL = 11;

  /**
   * The feature id for the 'Param' reference.
   *
   *
   * @generated
   * @ordered
   */
  int DOUBLE_LITERAL__PARAM = EXPRESSION__PARAM;

  /**
   * The feature id for the 'Value' attribute.
   *
   *
   * @generated
   * @ordered
   */
  int DOUBLE_LITERAL__VALUE = EXPRESSION_FEATURE_COUNT + 0;

  /**
   * The number of structural features of the 'Double Literal' class.
   *
   *
   * @generated
   * @ordered
   */
  int DOUBLE_LITERAL_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 1;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.impl.ConcatenationImpl Concatenation}' class.
   *
   *
   * @see org.remus.cmdline.commandLine.impl.ConcatenationImpl
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getConcatenation()
   * @generated
   */
  int CONCATENATION = 12;

  /**
   * The feature id for the 'Param' reference.
   *
   *
   * @generated
   * @ordered
   */
  int CONCATENATION__PARAM = EXPRESSION__PARAM;

  /**
   * The feature id for the 'Left' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int CONCATENATION__LEFT = EXPRESSION_FEATURE_COUNT + 0;

  /**
   * The feature id for the 'Right' containment reference.
   *
   *
   * @generated
   * @ordered
   */
  int CONCATENATION__RIGHT = EXPRESSION_FEATURE_COUNT + 1;

  /**
   * The number of structural features of the 'Concatenation' class.
   *
   *
   * @generated
   * @ordered
   */
  int CONCATENATION_FEATURE_COUNT = EXPRESSION_FEATURE_COUNT + 2;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.PrintMode Print Mode}' enum.
   *
   *
   * @see org.remus.cmdline.commandLine.PrintMode
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getPrintMode()
   * @generated
   */
  int PRINT_MODE = 13;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.InputDataType Input Data Type}' enum.
   *
   *
   * @see org.remus.cmdline.commandLine.InputDataType
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getInputDataType()
   * @generated
   */
  int INPUT_DATA_TYPE = 14;

  /**
   * The meta object id for the '{@link org.remus.cmdline.commandLine.OutputDataType Output Data Type}' enum.
   *
   *
   * @see org.remus.cmdline.commandLine.OutputDataType
   * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOutputDataType()
   * @generated
   */
  int OUTPUT_DATA_TYPE = 15;

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Model Model}'.
   *
   *
   * @return the meta object for class 'Model'.
   * @see org.remus.cmdline.commandLine.Model
   * @generated
   */
  EClass getModel();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Model#getPrograms Programs}'.
   *
   *
   * @return the meta object for the containment reference 'Programs'.
   * @see org.remus.cmdline.commandLine.Model#getPrograms()
   * @see #getModel()
   * @generated
   */
  EReference getModel_Programs();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Model#getSystem System}'.
   *
   *
   * @return the meta object for the containment reference 'System'.
   * @see org.remus.cmdline.commandLine.Model#getSystem()
   * @see #getModel()
   * @generated
   */
  EReference getModel_System();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.System System}'.
   *
   *
   * @return the meta object for class 'System'.
   * @see org.remus.cmdline.commandLine.System
   * @generated
   */
  EClass getSystem();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.System#getName Name}'.
   *
   *
   * @return the meta object for the attribute 'Name'.
   * @see org.remus.cmdline.commandLine.System#getName()
   * @see #getSystem()
   * @generated
   */
  EAttribute getSystem_Name();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.System#getPort Port}'.
   *
   *
   * @return the meta object for the containment reference 'Port'.
   * @see org.remus.cmdline.commandLine.System#getPort()
   * @see #getSystem()
   * @generated
   */
  EReference getSystem_Port();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.System#getVersion Version}'.
   *
   *
   * @return the meta object for the containment reference 'Version'.
   * @see org.remus.cmdline.commandLine.System#getVersion()
   * @see #getSystem()
   * @generated
   */
  EReference getSystem_Version();

  /**
   * Returns the meta object for the reference list '{@link org.remus.cmdline.commandLine.System#getProgram Program}'.
   *
   *
   * @return the meta object for the reference list 'Program'.
   * @see org.remus.cmdline.commandLine.System#getProgram()
   * @see #getSystem()
   * @generated
   */
  EReference getSystem_Program();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Program Program}'.
   *
   *
   * @return the meta object for class 'Program'.
   * @see org.remus.cmdline.commandLine.Program
   * @generated
   */
  EClass getProgram();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.Program#getName Name}'.
   *
   *
   * @return the meta object for the attribute 'Name'.
   * @see org.remus.cmdline.commandLine.Program#getName()
   * @see #getProgram()
   * @generated
   */
  EAttribute getProgram_Name();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Program#getPath Path}'.
   *
   *
   * @return the meta object for the containment reference 'Path'.
   * @see org.remus.cmdline.commandLine.Program#getPath()
   * @see #getProgram()
   * @generated
   */
  EReference getProgram_Path();

  /**
   * Returns the meta object for the containment reference list '{@link org.remus.cmdline.commandLine.Program#getFunctions Functions}'.
   *
   *
   * @return the meta object for the containment reference list 'Functions'.
   * @see org.remus.cmdline.commandLine.Program#getFunctions()
   * @see #getProgram()
   * @generated
   */
  EReference getProgram_Functions();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Param Param}'.
   *
   *
   * @return the meta object for class 'Param'.
   * @see org.remus.cmdline.commandLine.Param
   * @generated
   */
  EClass getParam();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.Param#getName Name}'.
   *
   *
   * @return the meta object for the attribute 'Name'.
   * @see org.remus.cmdline.commandLine.Param#getName()
   * @see #getParam()
   * @generated
   */
  EAttribute getParam_Name();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Function Function}'.
   *
   *
   * @return the meta object for class 'Function'.
   * @see org.remus.cmdline.commandLine.Function
   * @generated
   */
  EClass getFunction();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.Function#getName Name}'.
   *
   *
   * @return the meta object for the attribute 'Name'.
   * @see org.remus.cmdline.commandLine.Function#getName()
   * @see #getFunction()
   * @generated
   */
  EAttribute getFunction_Name();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.Function#getPrintOutMode Print Out Mode}'.
   *
   *
   * @return the meta object for the attribute 'Print Out Mode'.
   * @see org.remus.cmdline.commandLine.Function#getPrintOutMode()
   * @see #getFunction()
   * @generated
   */
  EAttribute getFunction_PrintOutMode();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Function#getDesc Desc}'.
   *
   *
   * @return the meta object for the containment reference 'Desc'.
   * @see org.remus.cmdline.commandLine.Function#getDesc()
   * @see #getFunction()
   * @generated
   */
  EReference getFunction_Desc();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Function#getDocurl Docurl}'.
   *
   *
   * @return the meta object for the containment reference 'Docurl'.
   * @see org.remus.cmdline.commandLine.Function#getDocurl()
   * @see #getFunction()
   * @generated
   */
  EReference getFunction_Docurl();

  /**
   * Returns the meta object for the containment reference list '{@link org.remus.cmdline.commandLine.Function#getInput Input}'.
   *
   *
   * @return the meta object for the containment reference list 'Input'.
   * @see org.remus.cmdline.commandLine.Function#getInput()
   * @see #getFunction()
   * @generated
   */
  EReference getFunction_Input();

  /**
   * Returns the meta object for the containment reference list '{@link org.remus.cmdline.commandLine.Function#getOutput Output}'.
   *
   *
   * @return the meta object for the containment reference list 'Output'.
   * @see org.remus.cmdline.commandLine.Function#getOutput()
   * @see #getFunction()
   * @generated
   */
  EReference getFunction_Output();

  /**
   * Returns the meta object for the containment reference list '{@link org.remus.cmdline.commandLine.Function#getOptionBlocks Option Blocks}'.
   *
   *
   * @return the meta object for the containment reference list 'Option Blocks'.
   * @see org.remus.cmdline.commandLine.Function#getOptionBlocks()
   * @see #getFunction()
   * @generated
   */
  EReference getFunction_OptionBlocks();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.InputDataDefinition Input Data Definition}'.
   *
   *
   * @return the meta object for class 'Input Data Definition'.
   * @see org.remus.cmdline.commandLine.InputDataDefinition
   * @generated
   */
  EClass getInputDataDefinition();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.InputDataDefinition#getInput Input}'.
   *
   *
   * @return the meta object for the containment reference 'Input'.
   * @see org.remus.cmdline.commandLine.InputDataDefinition#getInput()
   * @see #getInputDataDefinition()
   * @generated
   */
  EReference getInputDataDefinition_Input();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.InputDataDefinition#getType Type}'.
   *
   *
   * @return the meta object for the attribute 'Type'.
   * @see org.remus.cmdline.commandLine.InputDataDefinition#getType()
   * @see #getInputDataDefinition()
   * @generated
   */
  EAttribute getInputDataDefinition_Type();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.InputDataDefinition#getDoc Doc}'.
   *
   *
   * @return the meta object for the containment reference 'Doc'.
   * @see org.remus.cmdline.commandLine.InputDataDefinition#getDoc()
   * @see #getInputDataDefinition()
   * @generated
   */
  EReference getInputDataDefinition_Doc();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.OutputDataDefinition Output Data Definition}'.
   *
   *
   * @return the meta object for class 'Output Data Definition'.
   * @see org.remus.cmdline.commandLine.OutputDataDefinition
   * @generated
   */
  EClass getOutputDataDefinition();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.OutputDataDefinition#getInput Input}'.
   *
   *
   * @return the meta object for the containment reference 'Input'.
   * @see org.remus.cmdline.commandLine.OutputDataDefinition#getInput()
   * @see #getOutputDataDefinition()
   * @generated
   */
  EReference getOutputDataDefinition_Input();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.OutputDataDefinition#getType Type}'.
   *
   *
   * @return the meta object for the attribute 'Type'.
   * @see org.remus.cmdline.commandLine.OutputDataDefinition#getType()
   * @see #getOutputDataDefinition()
   * @generated
   */
  EAttribute getOutputDataDefinition_Type();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.OutputDataDefinition#getDoc Doc}'.
   *
   *
   * @return the meta object for the containment reference 'Doc'.
   * @see org.remus.cmdline.commandLine.OutputDataDefinition#getDoc()
   * @see #getOutputDataDefinition()
   * @generated
   */
  EReference getOutputDataDefinition_Doc();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Option Option}'.
   *
   *
   * @return the meta object for class 'Option'.
   * @see org.remus.cmdline.commandLine.Option
   * @generated
   */
  EClass getOption();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Option#getParam Param}'.
   *
   *
   * @return the meta object for the containment reference 'Param'.
   * @see org.remus.cmdline.commandLine.Option#getParam()
   * @see #getOption()
   * @generated
   */
  EReference getOption_Param();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Expression Expression}'.
   *
   *
   * @return the meta object for class 'Expression'.
   * @see org.remus.cmdline.commandLine.Expression
   * @generated
   */
  EClass getExpression();

  /**
   * Returns the meta object for the reference '{@link org.remus.cmdline.commandLine.Expression#getParam Param}'.
   *
   *
   * @return the meta object for the reference 'Param'.
   * @see org.remus.cmdline.commandLine.Expression#getParam()
   * @see #getExpression()
   * @generated
   */
  EReference getExpression_Param();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.StringLiteral String Literal}'.
   *
   *
   * @return the meta object for class 'String Literal'.
   * @see org.remus.cmdline.commandLine.StringLiteral
   * @generated
   */
  EClass getStringLiteral();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.StringLiteral#getValue Value}'.
   *
   *
   * @return the meta object for the attribute 'Value'.
   * @see org.remus.cmdline.commandLine.StringLiteral#getValue()
   * @see #getStringLiteral()
   * @generated
   */
  EAttribute getStringLiteral_Value();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.IntegerLiteral Integer Literal}'.
   *
   *
   * @return the meta object for class 'Integer Literal'.
   * @see org.remus.cmdline.commandLine.IntegerLiteral
   * @generated
   */
  EClass getIntegerLiteral();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.IntegerLiteral#getValue Value}'.
   *
   *
   * @return the meta object for the attribute 'Value'.
   * @see org.remus.cmdline.commandLine.IntegerLiteral#getValue()
   * @see #getIntegerLiteral()
   * @generated
   */
  EAttribute getIntegerLiteral_Value();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.DoubleLiteral Double Literal}'.
   *
   *
   * @return the meta object for class 'Double Literal'.
   * @see org.remus.cmdline.commandLine.DoubleLiteral
   * @generated
   */
  EClass getDoubleLiteral();

  /**
   * Returns the meta object for the attribute '{@link org.remus.cmdline.commandLine.DoubleLiteral#getValue Value}'.
   *
   *
   * @return the meta object for the attribute 'Value'.
   * @see org.remus.cmdline.commandLine.DoubleLiteral#getValue()
   * @see #getDoubleLiteral()
   * @generated
   */
  EAttribute getDoubleLiteral_Value();

  /**
   * Returns the meta object for class '{@link org.remus.cmdline.commandLine.Concatenation Concatenation}'.
   *
   *
   * @return the meta object for class 'Concatenation'.
   * @see org.remus.cmdline.commandLine.Concatenation
   * @generated
   */
  EClass getConcatenation();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Concatenation#getLeft Left}'.
   *
   *
   * @return the meta object for the containment reference 'Left'.
   * @see org.remus.cmdline.commandLine.Concatenation#getLeft()
   * @see #getConcatenation()
   * @generated
   */
  EReference getConcatenation_Left();

  /**
   * Returns the meta object for the containment reference '{@link org.remus.cmdline.commandLine.Concatenation#getRight Right}'.
   *
   *
   * @return the meta object for the containment reference 'Right'.
   * @see org.remus.cmdline.commandLine.Concatenation#getRight()
   * @see #getConcatenation()
   * @generated
   */
  EReference getConcatenation_Right();

  /**
   * Returns the meta object for enum '{@link org.remus.cmdline.commandLine.PrintMode Print Mode}'.
   *
   *
   * @return the meta object for enum 'Print Mode'.
   * @see org.remus.cmdline.commandLine.PrintMode
   * @generated
   */
  EEnum getPrintMode();

  /**
   * Returns the meta object for enum '{@link org.remus.cmdline.commandLine.InputDataType Input Data Type}'.
   *
   *
   * @return the meta object for enum 'Input Data Type'.
   * @see org.remus.cmdline.commandLine.InputDataType
   * @generated
   */
  EEnum getInputDataType();

  /**
   * Returns the meta object for enum '{@link org.remus.cmdline.commandLine.OutputDataType Output Data Type}'.
   *
   *
   * @return the meta object for enum 'Output Data Type'.
   * @see org.remus.cmdline.commandLine.OutputDataType
   * @generated
   */
  EEnum getOutputDataType();

  /**
   * Returns the factory that creates the instances of the model.
   *
   *
   * @return the factory that creates the instances of the model.
   * @generated
   */
  CommandLineFactory getCommandLineFactory();

  /**
   *
   * Defines literals for the meta objects that represent
   *

   *
each class,

   *
each feature of each class,

   *
each enum,

   *
and each data type

   *

   *
   * @generated
   */
  interface Literals
  {
    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.ModelImpl Model}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.ModelImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getModel()
     * @generated
     */
    EClass MODEL = eINSTANCE.getModel();

    /**
     * The meta object literal for the 'Programs' containment reference feature.
     *
     *
     * @generated
     */
    EReference MODEL__PROGRAMS = eINSTANCE.getModel_Programs();

    /**
     * The meta object literal for the 'System' containment reference feature.
     *
     *
     * @generated
     */
    EReference MODEL__SYSTEM = eINSTANCE.getModel_System();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.SystemImpl System}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.SystemImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getSystem()
     * @generated
     */
    EClass SYSTEM = eINSTANCE.getSystem();

    /**
     * The meta object literal for the 'Name' attribute feature.
     *
     *
     * @generated
     */
    EAttribute SYSTEM__NAME = eINSTANCE.getSystem_Name();

    /**
     * The meta object literal for the 'Port' containment reference feature.
     *
     *
     * @generated
     */
    EReference SYSTEM__PORT = eINSTANCE.getSystem_Port();

    /**
     * The meta object literal for the 'Version' containment reference feature.
     *
     *
     * @generated
     */
    EReference SYSTEM__VERSION = eINSTANCE.getSystem_Version();

    /**
     * The meta object literal for the 'Program' reference list feature.
     *
     *
     * @generated
     */
    EReference SYSTEM__PROGRAM = eINSTANCE.getSystem_Program();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.ProgramImpl Program}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.ProgramImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getProgram()
     * @generated
     */
    EClass PROGRAM = eINSTANCE.getProgram();

    /**
     * The meta object literal for the 'Name' attribute feature.
     *
     *
     * @generated
     */
    EAttribute PROGRAM__NAME = eINSTANCE.getProgram_Name();

    /**
     * The meta object literal for the 'Path' containment reference feature.
     *
     *
     * @generated
     */
    EReference PROGRAM__PATH = eINSTANCE.getProgram_Path();

    /**
     * The meta object literal for the 'Functions' containment reference list feature.
     *
     *
     * @generated
     */
    EReference PROGRAM__FUNCTIONS = eINSTANCE.getProgram_Functions();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.ParamImpl Param}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.ParamImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getParam()
     * @generated
     */
    EClass PARAM = eINSTANCE.getParam();

    /**
     * The meta object literal for the 'Name' attribute feature.
     *
     *
     * @generated
     */
    EAttribute PARAM__NAME = eINSTANCE.getParam_Name();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.FunctionImpl Function}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.FunctionImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getFunction()
     * @generated
     */
    EClass FUNCTION = eINSTANCE.getFunction();

    /**
     * The meta object literal for the 'Name' attribute feature.
     *
     *
     * @generated
     */
    EAttribute FUNCTION__NAME = eINSTANCE.getFunction_Name();

    /**
     * The meta object literal for the 'Print Out Mode' attribute feature.
     *
     *
     * @generated
     */
    EAttribute FUNCTION__PRINT_OUT_MODE = eINSTANCE.getFunction_PrintOutMode();

    /**
     * The meta object literal for the 'Desc' containment reference feature.
     *
     *
     * @generated
     */
    EReference FUNCTION__DESC = eINSTANCE.getFunction_Desc();

    /**
     * The meta object literal for the 'Docurl' containment reference feature.
     *
     *
     * @generated
     */
    EReference FUNCTION__DOCURL = eINSTANCE.getFunction_Docurl();

    /**
     * The meta object literal for the 'Input' containment reference list feature.
     *
     *
     * @generated
     */
    EReference FUNCTION__INPUT = eINSTANCE.getFunction_Input();

    /**
     * The meta object literal for the 'Output' containment reference list feature.
     *
     *
     * @generated
     */
    EReference FUNCTION__OUTPUT = eINSTANCE.getFunction_Output();

    /**
     * The meta object literal for the 'Option Blocks' containment reference list feature.
     *
     *
     * @generated
     */
    EReference FUNCTION__OPTION_BLOCKS = eINSTANCE.getFunction_OptionBlocks();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.InputDataDefinitionImpl Input Data Definition}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.InputDataDefinitionImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getInputDataDefinition()
     * @generated
     */
    EClass INPUT_DATA_DEFINITION = eINSTANCE.getInputDataDefinition();

    /**
     * The meta object literal for the 'Input' containment reference feature.
     *
     *
     * @generated
     */
    EReference INPUT_DATA_DEFINITION__INPUT = eINSTANCE.getInputDataDefinition_Input();

    /**
     * The meta object literal for the 'Type' attribute feature.
     *
     *
     * @generated
     */
    EAttribute INPUT_DATA_DEFINITION__TYPE = eINSTANCE.getInputDataDefinition_Type();

    /**
     * The meta object literal for the 'Doc' containment reference feature.
     *
     *
     * @generated
     */
    EReference INPUT_DATA_DEFINITION__DOC = eINSTANCE.getInputDataDefinition_Doc();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.OutputDataDefinitionImpl Output Data Definition}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.OutputDataDefinitionImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOutputDataDefinition()
     * @generated
     */
    EClass OUTPUT_DATA_DEFINITION = eINSTANCE.getOutputDataDefinition();

    /**
     * The meta object literal for the 'Input' containment reference feature.
     *
     *
     * @generated
     */
    EReference OUTPUT_DATA_DEFINITION__INPUT = eINSTANCE.getOutputDataDefinition_Input();

    /**
     * The meta object literal for the 'Type' attribute feature.
     *
     *
     * @generated
     */
    EAttribute OUTPUT_DATA_DEFINITION__TYPE = eINSTANCE.getOutputDataDefinition_Type();

    /**
     * The meta object literal for the 'Doc' containment reference feature.
     *
     *
     * @generated
     */
    EReference OUTPUT_DATA_DEFINITION__DOC = eINSTANCE.getOutputDataDefinition_Doc();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.OptionImpl Option}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.OptionImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOption()
     * @generated
     */
    EClass OPTION = eINSTANCE.getOption();

    /**
     * The meta object literal for the 'Param' containment reference feature.
     *
     *
     * @generated
     */
    EReference OPTION__PARAM = eINSTANCE.getOption_Param();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.ExpressionImpl Expression}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.ExpressionImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getExpression()
     * @generated
     */
    EClass EXPRESSION = eINSTANCE.getExpression();

    /**
     * The meta object literal for the 'Param' reference feature.
     *
     *
     * @generated
     */
    EReference EXPRESSION__PARAM = eINSTANCE.getExpression_Param();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.StringLiteralImpl String Literal}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.StringLiteralImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getStringLiteral()
     * @generated
     */
    EClass STRING_LITERAL = eINSTANCE.getStringLiteral();

    /**
     * The meta object literal for the 'Value' attribute feature.
     *
     *
     * @generated
     */
    EAttribute STRING_LITERAL__VALUE = eINSTANCE.getStringLiteral_Value();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.IntegerLiteralImpl Integer Literal}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.IntegerLiteralImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getIntegerLiteral()
     * @generated
     */
    EClass INTEGER_LITERAL = eINSTANCE.getIntegerLiteral();

    /**
     * The meta object literal for the 'Value' attribute feature.
     *
     *
     * @generated
     */
    EAttribute INTEGER_LITERAL__VALUE = eINSTANCE.getIntegerLiteral_Value();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.DoubleLiteralImpl Double Literal}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.DoubleLiteralImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getDoubleLiteral()
     * @generated
     */
    EClass DOUBLE_LITERAL = eINSTANCE.getDoubleLiteral();

    /**
     * The meta object literal for the 'Value' attribute feature.
     *
     *
     * @generated
     */
    EAttribute DOUBLE_LITERAL__VALUE = eINSTANCE.getDoubleLiteral_Value();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.impl.ConcatenationImpl Concatenation}' class.
     *
     *
     * @see org.remus.cmdline.commandLine.impl.ConcatenationImpl
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getConcatenation()
     * @generated
     */
    EClass CONCATENATION = eINSTANCE.getConcatenation();

    /**
     * The meta object literal for the 'Left' containment reference feature.
     *
     *
     * @generated
     */
    EReference CONCATENATION__LEFT = eINSTANCE.getConcatenation_Left();

    /**
     * The meta object literal for the 'Right' containment reference feature.
     *
     *
     * @generated
     */
    EReference CONCATENATION__RIGHT = eINSTANCE.getConcatenation_Right();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.PrintMode Print Mode}' enum.
     *
     *
     * @see org.remus.cmdline.commandLine.PrintMode
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getPrintMode()
     * @generated
     */
    EEnum PRINT_MODE = eINSTANCE.getPrintMode();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.InputDataType Input Data Type}' enum.
     *
     *
     * @see org.remus.cmdline.commandLine.InputDataType
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getInputDataType()
     * @generated
     */
    EEnum INPUT_DATA_TYPE = eINSTANCE.getInputDataType();

    /**
     * The meta object literal for the '{@link org.remus.cmdline.commandLine.OutputDataType Output Data Type}' enum.
     *
     *
     * @see org.remus.cmdline.commandLine.OutputDataType
     * @see org.remus.cmdline.commandLine.impl.CommandLinePackageImpl#getOutputDataType()
     * @generated
     */
    EEnum OUTPUT_DATA_TYPE = eINSTANCE.getOutputDataType();

  }

} //CommandLinePackage


text:
namespace System.IO
{
    public partial class ErrorEventArgs : System.EventArgs
    {
        public ErrorEventArgs(System.Exception exception) { }
        public virtual System.Exception GetException() { throw null; }
    }
    public delegate void ErrorEventHandler(object sender, System.IO.ErrorEventArgs e);
    public partial class FileSystemEventArgs : System.EventArgs
    {
        public FileSystemEventArgs(System.IO.WatcherChangeTypes changeType, string directory, string name) { }
        public System.IO.WatcherChangeTypes ChangeType { get { throw null; } }
        public string FullPath { get { throw null; } }
        public string Name { get { throw null; } }
    }
    public delegate void FileSystemEventHandler(object sender, System.IO.FileSystemEventArgs e);
    public partial class FileSystemWatcher : System.ComponentModel.Component, System.ComponentModel.ISupportInitialize
    {
        public FileSystemWatcher() { }
        public FileSystemWatcher(string path) { }
        public FileSystemWatcher(string path, string filter) { }
        public bool EnableRaisingEvents { get { throw null; } set { } }
        public string Filter { get { throw null; } set { } }
        public Collections.ObjectModel.Collection<string> Filters { get { throw null; } }
        public bool IncludeSubdirectories { get { throw null; } set { } }
        public int InternalBufferSize { get { throw null; } set { } }
        public System.IO.NotifyFilters NotifyFilter { get { throw null; } set { } }
        public string Path { get { throw null; } set { } }
        public override System.ComponentModel.ISite Site { get { throw null; } set { } }
        public System.ComponentModel.ISynchronizeInvoke SynchronizingObject { get { throw null; } set { } }
        public event System.IO.FileSystemEventHandler Changed { add { } remove { } }
        public event System.IO.FileSystemEventHandler Created { add { } remove { } }
        public event System.IO.FileSystemEventHandler Deleted { add { } remove { } }
        public event System.IO.ErrorEventHandler Error { add { } remove { } }
        public event System.IO.RenamedEventHandler Renamed { add { } remove { } }
        public void BeginInit() { }
        protected override void Dispose(bool disposing) { }
        public void EndInit() { }
        protected void OnChanged(System.IO.FileSystemEventArgs e) { }
        protected void OnCreated(System.IO.FileSystemEventArgs e) { }
        protected void OnDeleted(System.IO.FileSystemEventArgs e) { }
        protected void OnError(System.IO.ErrorEventArgs e) { }
        protected void OnRenamed(System.IO.RenamedEventArgs e) { }
        public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType) { throw null; }
        public System.IO.WaitForChangedResult WaitForChanged(System.IO.WatcherChangeTypes changeType, int timeout) { throw null; }
    }
    public partial class InternalBufferOverflowException : System.SystemException
    {
        public InternalBufferOverflowException() { }
        protected InternalBufferOverflowException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) { }
        public InternalBufferOverflowException(string message) { }
        public InternalBufferOverflowException(string message, System.Exception inner) { }
    }
    [System.FlagsAttribute]
    public enum NotifyFilters
    {
        Attributes = 4,
        CreationTime = 64,
        DirectoryName = 2,
        FileName = 1,
        LastAccess = 32,
        LastWrite = 16,
        Security = 256,
        Size = 8,
    }
    public partial class RenamedEventArgs : System.IO.FileSystemEventArgs
    {
        public RenamedEventArgs(System.IO.WatcherChangeTypes changeType, string directory, string name, string oldName) : base (default(System.IO.WatcherChangeTypes), default(string), default(string)) { }
        public string OldFullPath { get { throw null; } }
        public string OldName { get { throw null; } }
    }
    public delegate void RenamedEventHandler(object sender, System.IO.RenamedEventArgs e);
    public partial struct WaitForChangedResult
    {
        private object _dummy;
        public System.IO.WatcherChangeTypes ChangeType { get { throw null; } set { } }
        public string Name { get { throw null; } set { } }
        public string OldName { get { throw null; } set { } }
        public bool TimedOut { get { throw null; } set { } }
    }
    [System.FlagsAttribute]
    public enum WatcherChangeTypes
    {
        All = 15,
        Changed = 4,
        Created = 1,
        Deleted = 2,
        Renamed = 8,
    }
}

redpajama_set_name: RedPajamaGithub


text:
package com.cinchapi.concourse.server.plugin.io;

import java.io.IOException;
import java.io.Serializable;
import java.nio.ByteBuffer;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.List;

import org.junit.Assert;
import org.junit.Test;

import com.cinchapi.concourse.server.concurrent.Threads;
import com.cinchapi.concourse.server.io.process.Callback;
import com.cinchapi.concourse.server.io.process.Forkable;
import com.cinchapi.concourse.server.io.process.NoOpCallback;
import com.cinchapi.concourse.server.io.process.ServerProcesses;
import com.cinchapi.concourse.test.ConcourseBaseTest;
import com.cinchapi.concourse.util.ByteBuffers;
import com.cinchapi.concourse.util.FileOps;
import com.cinchapi.concourse.util.Random;
import com.cinchapi.concourse.util.TestData;
import com.google.common.collect.Lists;

/**
 * Unit tests for {@link InterProcessCommunication} that take advantage of the
 * server's
 * ability to fork processes from a local JVM.
 *
 * @author Jeff Nelson
 */
@SuppressWarnings("serial")
public abstract class CrossProcessInterProcessCommunicationTest
        extends ConcourseBaseTest implements Serializable {

    public abstract InterProcessCommunication getInterProcessCommunication(
            String file);

    @Test
    public void testReadWrite() throws InterruptedException, IOException {
        final List<String> expected = Lists.newArrayList();
        for (int i = 0; i < Random.getScaleCount(); ++i) {
            expected.add(Random.getString());
        }
        final String location = FileOps.tempFile();
        final String signal = FileOps.tempFile();
        Files.deleteIfExists(Paths.get(signal));
        Thread writer = new Thread(new Runnable() {

            @Override
            public void run() {
                InterProcessCommunication shared = getInterProcessCommunication(
                        location);
                for (String message : expected) {
                    shared.write(ByteBuffers.fromString(message));
                    Threads.sleep(TestData.getScaleCount());
                }
            }

        });

        Forkable<ArrayList<String>> reader = new Forkable<ArrayList<String>>() {

            @Override
            public ArrayList<String> call() throws Exception {
                ArrayList<String> actual = Lists.newArrayList();
                InterProcessCommunication shared = getInterProcessCommunication(
                        location);
                Files.createFile(Paths.get(signal));
                while (actual.size() < expected.size()) {
                    ByteBuffer data = shared.read();
                    String message = ByteBuffers.getString(data);
                    actual.add(message);
                    Threads.sleep(TestData.getScaleCount());
                }
                return actual;
            }

        };

        Callback<ArrayList<String>> callback = new NoOpCallback<ArrayList<String>>();
        ServerProcesses.fork(reader, callback);
        while (!Files.deleteIfExists(Paths.get(signal))) {
            continue;
        }
        writer.start();
        writer.join();
        Assert.assertEquals(expected, callback.getResult());
    }

}


text: Copyright © 2014-2015 Ondatel Studio. All rights reserved.


text:
function Set-Wallpaper {
    param (
        [string]$Path,
        [ValidateSet('Tile', 'Center', 'Stretch', 'Fill', 'Fit', 'Span')]
        [string]$Style = 'Fill'
    )

    begin {
        Add-Type @"
        using System;
        using System.Runtime.InteropServices;
        using Microsoft.Win32;
        namespace Wallpaper
        {
        public enum Style : int
        {
        Tile, Center, Stretch, Fill, Fit, Span, NoChange
        }
        public class Setter {
        public const int SetDesktopWallpaper = 20;
        public const int UpdateIniFile = 0x01;
        public const int SendWinIniChange = 0x02;
        [DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
        private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
        public static void SetWallpaper ( string path, Wallpaper.Style style ) {
        SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
        RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
        switch( style )
        {
        case Style.Tile :
        key.SetValue(@"WallpaperStyle", "0") ;
        key.SetValue(@"TileWallpaper", "1") ;
        break;
        case Style.Center :
        key.SetValue(@"WallpaperStyle", "0") ;
        key.SetValue(@"TileWallpaper", "0") ;
        break;
        case Style.Stretch :
        key.SetValue(@"WallpaperStyle", "2") ;
        key.SetValue(@"TileWallpaper", "0") ;
        break;
        case Style.Fill :
        key.SetValue(@"WallpaperStyle", "10") ;
        key.SetValue(@"TileWallpaper", "0") ;
        break;
        case Style.Fit :
        key.SetValue(@"WallpaperStyle", "6") ;
        key.SetValue(@"TileWallpaper", "0") ;
        break;
        case Style.Span :
        key.SetValue(@"WallpaperStyle", "22") ;
        key.SetValue(@"TileWallpaper", "0") ;
        break;
        case Style.NoChange :
        break;
        }
        key.Close();
        }
        }
        }
"@

        $StyleNum = @{
            Tile = 0
            Center = 1
            Stretch = 2
            Fill = 3
            Fit = 4
            Span = 5
        }

        function Resolve-FullPath {
            [CmdletBinding()]
            param (
                [Parameter(Mandatory=$true)]
                [string]
                # The path to resolve. Must be rooted, i.e. have a drive at the beginning.
                $Path = $(Throw 'No path provided.')
            )

            if ( -not ([IO.Path]::IsPathRooted($Path)) ) {
                # $Path = "$PWD\$Path"
                $Path = Join-Path (Get-Location) $Path
            }
            [IO.Path]::GetFullPath($Path)
        }
    }

    process {
        [Wallpaper.Setter]::SetWallpaper($Path, $StyleNum[$Style])
        [Wallpaper.Setter]::SetWallpaper($Path, $StyleNum[$Style])
    }
}


text:
module Serverspec::Type
  class File < Base
    def text?
      @runner.check_file_is_text(@name)
    end
  end
end


text:
<!DOCTYPE html>

  <meta charset="utf-8">
	<title>GRAINPLAYER</title>

	<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
	<link rel="icon" type="image/png" sizes="174x174" href="./style/favicon.png">

	<link rel="stylesheet" type="text/css" href="./style/examples.css">

Granular Synthesis

			Tone.GrainPlayer uses
			granular synthesis
			to enable you to adjust pitch and playback rate independently. The grainSize is the
			amount of time each small chunk of audio is played for and the overlap is the
			amount of crossfading transition time between successive grains.


text:
import { boot } from 'quasar/wrappers';
import { createI18n } from 'vue-i18n';

import messages from 'src/i18n';

export type MessageLanguages = keyof typeof messages;
// Type-define 'en-US' as the master schema for the resource
export type MessageSchema = typeof messages["en-US"];

// See https://vue-i18n.intlify.dev/guide/advanced/typescript.html#global-resource-schema-type-definition
/* eslint-disable @typescript-eslint/no-empty-interface */
declare module "vue-i18n" {
  // define the locale messages schema
  export interface DefineLocaleMessage extends MessageSchema {}

  // define the datetime format schema
  export interface DefineDateTimeFormat {}

  // define the number format schema
  export interface DefineNumberFormat {}
}
/* eslint-enable @typescript-eslint/no-empty-interface */

export default boot(({ app }) => {
  const i18n = createI18n({
    locale: 'en-US',<% if (typescriptConfig === 'composition' || typescriptConfig === 'composition-setup') { %>
    legacy: false,<% } %>
    messages,
  });

  // Set i18n instance on app
  app.use(i18n);
});


text:
using content::RenderViewHost;
using content::WebContents;
using extensions::Extension;

class GtalkExtensionTest : public ExtensionBrowserTest {
 protected:
  extensions::ProcessManager* GetProcessManager() {
    return extensions::ExtensionSystem::Get(browser()->profile())->
        process_manager();
  }

  void InstallGtalkExtension(const std::string& version) {
    const Extension* extension = InstallExtensionWithUIAutoConfirm(
        test_data_dir_.AppendASCII("gtalk").AppendASCII(version + ".crx"),
        1, browser());
    installed_extension_id_ = extension->id();
  }

  const std::string& GetInstalledExtensionId() {
    return installed_extension_id_;
  }

  RenderViewHost* GetViewer() {
    std::vector<RenderViewHost*> views = GetMatchingViews(GetViewerUrl());
    EXPECT_EQ(1U, views.size());
    if (views.empty())
      return NULL;
    return views.front();
  }

  std::string GetViewerUrl() {
    return "chrome-extension://" + GetInstalledExtensionId() + "/viewer.html";
  }

  std::vector<RenderViewHost*> GetMatchingViews(std::string url_query) {
    extensions::ProcessManager* manager = GetProcessManager();
    extensions::ProcessManager::ViewSet all_views = manager->GetAllViews();
    std::vector<RenderViewHost*> matching_views;
    for (extensions::ProcessManager::ViewSet::const_iterator iter =
         all_views.begin(); iter != all_views.end(); ++iter) {
      WebContents* web_contents = WebContents::FromRenderViewHost(*iter);
      std::string url = web_contents->GetURL().spec();
      if (url.find(url_query) != std::string::npos)
        matching_views.push_back(*iter);
    }
    return matching_views;
  }

  std::string ReadCurrentVersion() {
    std::string response;
    EXPECT_TRUE(base::ReadFileToString(
      test_data_dir_.AppendASCII("gtalk").AppendASCII("current_version"),
      &response));
    return response;
  }

 private:
  std::string installed_extension_id_;
};

IN_PROC_BROWSER_TEST_F(GtalkExtensionTest, InstallCurrent) {
  content::WindowedNotificationObserver panel_loaded(
    chrome::NOTIFICATION_EXTENSION_VIEW_REGISTERED,
    content::NotificationService::AllSources());
  InstallGtalkExtension(ReadCurrentVersion());
  panel_loaded.Wait();
  ASSERT_TRUE(GetViewer());
}


text:
<?php

namespace Drupal\custom_formatters\Tests;

/**
 * Test general functionality.
 *
 * @group Custom Formatters
 */
class CustomFormattersGeneralTest extends CustomFormattersTestBase {

  /**
   * Test General UI related functionality.
   */
  public function testCustomFormattersUi() {
    // Ensure the Formatters administration is linked in the structure section.
    $this->drupalGet('admin/structure');
    $this->assertLinkByHref('admin/structure/formatters');
    $this->assertText('Administer Formatters.');

    $this->drupalGet('admin/structure/formatters');

    // Ensure the Formatters overview page is present.
    $expected_title = t(':title | :sitename', [
      ':title'    => 'Formatters',
      ':sitename' => \Drupal::config('system.site')->get('name'),
    ]);
    $this->assertTitle($expected_title);

    // Ensure the Settings link is present and correct.
    $this->assertLink(t('Settings'));
    $this->assertLinkByHref('admin/structure/formatters/settings');

    // Ensure our pre-prepared test formatter is present.
    $this->assertText('Test Formatter');
    $this->assertLinkByHref('admin/structure/formatters/manage/test_formatter');
    $this->assertCustomFormatterExists('test_formatter');

    // Ensure our pre-prepared test formatter is present on the Manage display
    // page.
    $this->drupalGet('admin/structure/types/manage/article/display');
    $this->assertRaw('custom_formatters:test_formatter');
    $this->assertRaw('Custom: Test Formatter');

    // Change the Label prefix.
    $edit = ['label_prefix_value' => $this->randomMachineName()];
    $this->drupalPostForm('admin/structure/formatters/settings', $edit, t('Save configuration'));
    $this->assertText(t('Custom Formatters settings have been updated.'));

    // Ensure our pre-prepared test formatter is present on the Manage display
    // page with the altered label prefix.
    $this->drupalGet('admin/structure/types/manage/article/display');
    $this->assertRaw(t('@prefix: Test Formatter', ['@prefix' => $edit['label_prefix_value']]));

    // Remove the Label prefix.
    $edit = ['label_prefix' => FALSE];
    $this->drupalPostForm('admin/structure/formatters/settings', $edit, t('Save configuration'));
    $this->assertText(t('Custom Formatters settings have been updated.'));

    // Ensure our pre-prepared test formatter is present on the Manage display
    // page without a label prefix.
    $this->drupalGet('admin/structure/types/manage/article/display');
    $this->assertRaw('Test Formatter');
  }

  /**
   * Test the Formatter preset Engine.
   *
   * @TODO - Add manual creation test.
   */
  public function testFormatterTypeFormatterPreset() {
    // Create a Custom formatter.
    $this->formatter = $this->createCustomFormatter([
      'type' => 'formatter_preset',
      'data' => [
        'formatter' => 'text_trimmed',
        'settings'  => [
          'trim_length' => 10,
        ],
      ],
    ]);

    // Set the formatter active on the Body field.
    $this->setCustomFormatter($this->formatter->id(), 'body', 'article');

    // Ensure Formatter rendered correctly.
    $this->drupalGet($this->node->toUrl());
    // We substring to a length of 7 characters instead of 10 characters as the
    // formatter will include the starting HTML paragraph tag in the character
    // count.
    $this->assert(!strstr($this->content, $this->node->get('body')[0]->value) && strstr($this->content, substr($this->node->get('body')[0]->value, 0, 7)), t('Custom formatter output found.'));
  }

  /**
   * Test the PHP Engine.
   *
   * @TODO - Add manual creation test.
   */
  public function testCustomFormatterTypePhp() {
    // Create a Custom formatter.
    $text = $this->randomMachineName();
    $this->formatter = $this->createCustomFormatter([
      'type' => 'php',
      'data' => "return '{$text}';",
    ]);

    // Set the formatter active on the Body field.
    $this->setCustomFormatter($this->formatter->id(), 'body', 'article');

    // Ensure Formatter rendered correctly.
    $this->drupalGet($this->node->toUrl());
    $this->assertText($text, t('Custom formatter output found.'));
  }

  /**
   * Test the Twig engine.
   *
   * @TODO - Add manual creation test.
   */
  public function testCustomFormatterTypeTwig() {
    // Create a Custom formatter.
    $text = $this->randomMachineName();
    $this->formatter = $this->createCustomFormatter([
      'type' => 'twig',
      'data' => $text,
    ]);

    // Set the formatter active on the Body field.
    $this->setCustomFormatter($this->formatter->id(), 'body', 'article');

    // Ensure Formatter rendered correctly.
    $this->drupalGet($this->node->toUrl());
    $this->assertText($text, t('Custom formatter output found.'));
  }

  /**
   * Test the HTML + Token engine.
   *
   * @TODO - Add manual creation test.
   */
  public function testCustomFormatterTypeHtmlToken() {
    // Create a Custom formatter.
    $text = $this->randomMachineName();
    $this->formatter = $this->createCustomFormatter([
      'type' => 'html_token',
      'data' => $text,
    ]);

    // Set the formatter active on the Body field.
    $this->setCustomFormatter($this->formatter->id(), 'body', 'article');

    // Ensure Formatter rendered correctly.
    $this->drupalGet($this->node->toUrl());
    $this->assertText($text, t('Custom formatter output found.'));
  }

}


text:
package jp.gauzau.MikuMikuDroid;

import java.util.ArrayList;
import java.util.HashMap;

import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;
import javax.microedition.khronos.opengles.GL11;
import javax.microedition.khronos.opengles.GL11Ext;

import android.opengl.GLU;
import android.util.Log;

public class MikuRenderer extends MikuRendererBase {
	private float[] mLightDir = new float[3];
	private int[] mTexSize = new int[1];
	private boolean mNpot;

	public MikuRenderer(CoreLogic cl) {
		super(cl);
		mCoreLogic = cl;
		clear();
	}

	public void initializeBuffers(GL10 gl) {
		mLightDir[0] = -0.5f; mLightDir[1] = -1.0f; mLightDir[2] = -0.5f;	// in left-handed region
		Vector.normalize(mLightDir);

		for (Miku miku : mCoreLogic.getMiku()) {
			// toon shading
			gl.glActiveTexture(GL10.GL_TEXTURE0);
			miku.mModel.calcToonTexCoord(mLightDir);
			readAndBindToonTexture(gl, miku.mModel);

			// Texture
			gl.glActiveTexture(GL10.GL_TEXTURE1);
			readAndBindTexture(gl, miku.mModel);

			// buffer bindings
			bindBuffer(miku.mModel, gl);
		}
	}

	public void initializeBuffers(GL10 gl, Miku miku) {
		mLightDir[0] = -0.5f; mLightDir[1] = -1.0f; mLightDir[2] = -0.5f;	// in left-handed region
		Vector.normalize(mLightDir);

		// toon shading
		gl.glActiveTexture(GL10.GL_TEXTURE0);
		miku.mModel.calcToonTexCoord(mLightDir);
		readAndBindToonTexture(gl, miku.mModel);

		// Texture
		gl.glActiveTexture(GL10.GL_TEXTURE1);
		readAndBindTexture(gl, miku.mModel);
	}

	@Override
	public void onDrawFrame(GL10 gl) {
		super.onDrawFrame(gl);
		GL11 gl11 = (GL11) gl;

		gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);

		int pos = mCoreLogic.applyCurrentMotion();

		if (mCoreLogic.getMiku() != null) {
			for (Miku miku : mCoreLogic.getMiku()) {
				if(miku.mModel.mIsTextureLoaded == false) {
					initializeBuffers(gl, miku);
					miku.mModel.mIsTextureLoaded = true;
				}
			}

			gl.glMatrixMode(GL10.GL_PROJECTION);
			gl.glLoadMatrixf(mCoreLogic.getProjectionMatrix(), 0);

			gl.glMatrixMode(GL10.GL_MODELVIEW);
			gl.glLoadIdentity();

			gl11.glEnableClientState(GL10.GL_VERTEX_ARRAY);
			gl11.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY);

			// float white_light[] = {0.6f, 0.6f, 0.6f, 1.0f};
			// float lmodel_ambient[] = {0.6f, 0.6f, 0.6f, 1.0f};
			// float light_pos[] = {0f, 5f, -3f};
			// gl.glEnableClientState(GL10.GL_NORMAL_ARRAY);
			// gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_POSITION, light_pos, 0);
			// gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_DIFFUSE, white_light, 0);
			// gl.glLightfv(GL10.GL_LIGHT0, GL10.GL_SPECULAR, lmodel_ambient, 0);
			// gl.glLightModelfv(GL10.GL_LIGHT_MODEL_AMBIENT, lmodel_ambient, 0);

			gl.glEnable(GL11Ext.GL_MATRIX_PALETTE_OES);
			for (Miku miku : mCoreLogic.getMiku()) {
				if(miku.mMotion == null) { // stage
					gl.glDisable(GL11Ext.GL_MATRIX_PALETTE_OES);
					gl11.glDisableClientState(GL11Ext.GL_MATRIX_INDEX_ARRAY_OES);
					gl11.glDisableClientState(GL11Ext.GL_WEIGHT_ARRAY_OES);
				} else {
					gl.glEnable(GL11Ext.GL_MATRIX_PALETTE_OES);
					gl11.glEnableClientState(GL11Ext.GL_MATRIX_INDEX_ARRAY_OES);
					gl11.glEnableClientState(GL11Ext.GL_WEIGHT_ARRAY_OES);
				}
				bindBuffer(miku.mModel, gl);
				draw(gl, miku.mModel);
			}
		}

		gl.glFlush();
		mCoreLogic.onDraw(pos);
	}

	@Override
	public void onSurfaceChanged(GL10 gl, int width, int height) {
		super.onSurfaceChanged(gl, width, height);

		gl.glViewport(0, 0, width, height);
	}

	@Override
	public void onSurfaceCreated(GL10 gl, EGLConfig config) {
		super.onSurfaceCreated(gl, config);

		mNpot = gl.glGetString(GL10.GL_EXTENSIONS).contains("GL_ARB_texture_non_power_of_two");
		gl.glHint(GL10.GL_PERSPECTIVE_CORRECTION_HINT, GL10.GL_FASTEST);

		gl.glClearColor(1, 1, 1, 1);

		gl.glEnable(GL10.GL_NORMALIZE);
		gl.glEnable(GL10.GL_CULL_FACE);
		gl.glFrontFace(GL10.GL_CW);
		gl.glShadeModel(GL10.GL_SMOOTH);
		gl.glEnable(GL10.GL_DEPTH_TEST);
		gl.glDepthFunc(GL10.GL_LEQUAL);

		// gl.glEnable(GL10.GL_LIGHTING);
		// gl.glEnable(GL10.GL_LIGHT0);

		// GLUtils.texImage2D generates premultiplied-alpha texture. so we use GL_ONE instead of GL_ALPHA
		gl.glEnable(GL10.GL_BLEND);
		gl.glBlendFunc(GL10.GL_ONE, GL10.GL_ONE_MINUS_SRC_ALPHA);
//		gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);

		gl.glEnable(GL11Ext.GL_MATRIX_PALETTE_OES);

		gl.glGetIntegerv(GL11.GL_MAX_TEXTURE_SIZE, mTexSize, 0);

		int matnum[] = new int[1];
		gl.glGetIntegerv(GL11Ext.GL_MAX_PALETTE_MATRICES_OES, matnum, 0);
		mCoreLogic.setGLConfig(matnum[0]);

		// gl.glEnable( GL10.GL_ALPHA_TEST );
		// gl.glAlphaFunc( GL10.GL_GEQUAL, 0.05f );

		if (mCoreLogic.getMiku() != null) {
			initializeBuffers(gl);
		}
	}

	@Override
	public void clear() {
		super.clear();
	}

	private void draw(GL10 gl, MikuModel miku) {
		GL11Ext gl11Ext = (GL11Ext) gl;
		ArrayList<Bone> bs = miku.mBone;

		if (miku.mAnimation) {
			gl.glMatrixMode(GL11Ext.GL_MATRIX_PALETTE_OES);
		}

		ArrayList<Material> rendar = miku.mAnimation ? miku.mRendarList : miku.mMaterial;
		for (Material mat : rendar) {
			if (miku.mAnimation) {
				for (int j = 0; j < miku.mMaxBone; j++) {
					int inv = mat.bone_inv_map[j];
					if (inv >= 0) {
						Bone b = bs.get(inv);
						gl11Ext.glCurrentPaletteMatrixOES(j);
						gl11Ext.glLoadPaletteFromModelViewMatrixOES();
						gl.glMultMatrixf(b.matrix, 0);
					}
				}

				// gl11.glBindBuffer(GL11.GL_ARRAY_BUFFER, 0);
				gl11Ext.glMatrixIndexPointerOES(2, GL10.GL_UNSIGNED_BYTE, 3, mat.weight);
			}

			// don't cull face that has alpha value 0.99
			if(mat.diffuse_color[3] < 1) {
				gl.glDisable(GL10.GL_CULL_FACE);
			} else {
				gl.glEnable(GL10.GL_CULL_FACE);
			}

			// Toon texture
			gl.glActiveTexture(GL10.GL_TEXTURE0);
			gl.glEnable(GL10.GL_TEXTURE_2D);
			gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
			gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
			gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
			gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
			gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
			gl.glBindTexture(GL10.GL_TEXTURE_2D, miku.mToon.get(mat.toon_index));
			float wi = 0.6f;

			if (mat.texture != null) {
				gl.glActiveTexture(GL10.GL_TEXTURE1);
				gl.glEnable(GL10.GL_TEXTURE_2D);
				gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_MODULATE);
				gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
				gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
				gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
				gl.glTexParameterx(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_LINEAR);
				gl.glBindTexture(GL10.GL_TEXTURE_2D, miku.mTexture.get(mat.texture).tex);
				gl.glColor4f(mat.diffuse_color[0] * wi + mat.emmisive_color[0], mat.diffuse_color[1] * wi + mat.emmisive_color[1], mat.diffuse_color[2] * wi + mat.emmisive_color[2], mat.diffuse_color[3]);
			} else {
				gl.glActiveTexture(GL10.GL_TEXTURE1);
				gl.glDisable(GL10.GL_TEXTURE_2D);
				gl.glColor4f((mat.diffuse_color[0] * wi + mat.emmisive_color[0]) * mat.diffuse_color[3],
						     (mat.diffuse_color[1] * wi + mat.emmisive_color[1]) * mat.diffuse_color[3],
						     (mat.diffuse_color[2] * wi + mat.emmisive_color[2]) * mat.diffuse_color[3], mat.diffuse_color[3]);
			}

			// gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_DIFFUSE, mat.face_color, 0);
			// gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_SPECULAR, mat.specular_color, 0);
			// gl.glMaterialfv(GL10.GL_FRONT_AND_BACK, GL10.GL_AMBIENT, mat.emmisive_color, 0);
			// gl.glMaterialf(GL10.GL_FRONT_AND_BACK, GL10.GL_SHININESS, mat.power);

			miku.mIndexBuffer.position(mat.face_vert_offset);
			gl.glDrawElements(GL10.GL_TRIANGLES, mat.face_vert_count, GL10.GL_UNSIGNED_SHORT, miku.mIndexBuffer);
		}
		miku.mIndexBuffer.position(0);
	}

	private void bindBuffer(MikuModel miku, GL10 gl) {
		GL11Ext gl11Ext = (GL11Ext) gl;

		miku.mAllBuffer.position(0);
		gl.glVertexPointer(3, GL10.GL_FLOAT, 8 * 4, miku.mAllBuffer);

		miku.mAllBuffer.position(3);
		gl.glNormalPointer(GL10.GL_FLOAT, 8 * 4, miku.mAllBuffer);

		gl11Ext.glWeightPointerOES(2, GL10.GL_FLOAT, 0, miku.mWeightBuffer);

		gl.glClientActiveTexture(GL10.GL_TEXTURE0);
		gl.glTexCoordPointer(2, GL10.GL_FLOAT, 0, miku.mToonCoordBuffer);

		miku.mAllBuffer.position(6);
		gl.glClientActiveTexture(GL10.GL_TEXTURE1);
		gl.glTexCoordPointer(2, GL10.GL_FLOAT, 8 * 4, miku.mAllBuffer);

		miku.mAllBuffer.position(0);

	}

	public void readAndBindTexture(GL10 gl, MikuModel model) {
		gl.glPixelStorei(GL10.GL_UNPACK_ALIGNMENT, 1);

		model.mTexture = new HashMap<String, TexInfo>();
		for (int i = 0; i < model.mMaterial.size(); i++) {
			Material mat = model.mMaterial.get(i);
			if (mat.texture != null) {
				if (model.mTexture.get(mat.texture) == null) {
					int tex[] = new int[1];
					gl.glGenTextures(1, tex, 0);
					gl.glBindTexture(GL10.GL_TEXTURE_2D, tex[0]);
					TexInfo ti = TextureFile.loadTexture(model.mBase, mat.texture, 2, mTexSize[0], mNpot);
					ti.tex = tex[0];

					int err = gl.glGetError();
					if (err != 0) {
						Log.d("MikuModel", GLU.gluErrorString(err));
					}
					model.mTexture.put(mat.texture, ti);
				}
			}
		}
	}

	private void readAndBindToonTexture(GL10 gl, MikuModel model) {
		int tex[] = new int[11];
		gl.glPixelStorei(GL10.GL_UNPACK_ALIGNMENT, 1);
		gl.glGenTextures(11, tex, 0);

		model.mToon = new ArrayList<Integer>();
		for (int i = 0; i < 11; i++) {
			gl.glBindTexture(GL10.GL_TEXTURE_2D, tex[i]);
			TextureFile.loadTexture(model.mBase, model.mToonFileName.get(i), 1, mTexSize[0], mNpot);
			model.mToon.add(tex[i]);
		}
	}

}


text:
package aima.core.environment.connectfour;

/**
 * A state of the Connect Four game is characterized by a board containing a
 * grid of spaces for disks, the next player to move, and some utility
 * informations. A win position for a player x is an empty space which turns a
 * situation into a win situation for x if he is able to place a disk there.
 *
 * @author Ruediger Lunde
 *
 */
public class ConnectFourState implements Cloneable {
	private int cols;
	/**
	 * Uses special bit coding. First bit: disk of player 1, second bit: disk of
	 * player 2, third bit: win position for player 1, fourth bit: win position
	 * for player 2.
	 */
	private byte[] board;

	private int moveCount;
	/**
	 * Indicates the utility of the state. 1: win for player 1, 0: win for
	 * player 2, 0.5: draw, -1 for all non-terminal states.
	 */
	private double utility;
	public int winPositions1;
	public int winPositions2;

	public ConnectFourState(int rows, int cols) {
		utility = -1;
		this.cols = cols;
		board = new byte[rows * cols];
	}

	public int getRows() {
		return board.length / cols;
	}

	public int getCols() {
		return cols;
	}

	public double getUtility() {
		return utility;
	}

	public int getPlayerNum(int row, int col) {
		return board[row * cols + col] & 3;
	}

	public int getPlayerToMove() {
		return moveCount % 2 + 1;
	}

	public int getMoves() {
		return moveCount;
	}

	public void dropDisk(int col) {
		int playerNum = getPlayerToMove();
		int row = getFreeRow(col);
		if (row != -1) {
			moveCount++;
			if (moveCount == board.length)
				utility = 0.5;
			if (isWinPositionFor(row, col, 1)) {
				winPositions1--;
				if (playerNum == 1)
					utility = 1.0;
			}
			if (isWinPositionFor(row, col, 2)) {
				winPositions2--;
				if (playerNum == 2)
					utility = 0.0;
			}
			board[row * cols + col] = (byte) playerNum;
			if (utility == -1)
				analyzeWinPositions(row, col);
		}
	}

	/**
	 * Returns the row of the first empty space in the specified column and -1
	 * if the column is full.
	 */
	private int getFreeRow(int col) {
		for (int row = getRows() - 1; row >= 0; row--)
			if (getPlayerNum(row, col) == 0)
				return row;
		return -1;
	}

	public boolean isWinMoveFor(int col, int playerNum) {
		return isWinPositionFor(getFreeRow(col), col, playerNum);
	}

	public boolean isWinPositionFor(int row, int col, int playerNum) {
		return (board[row * cols + col] & playerNum * 4) > 0;
	}

	private void setWinPositionFor(int row, int col, int playerNum) {
		if (playerNum == 1) {
			if (!isWinPositionFor(row, col, 1))
				winPositions1++;
		} else if (playerNum == 2) {
			if (!isWinPositionFor(row, col, 2))
				winPositions2++;
		} else {
			throw new IllegalArgumentException("Wrong player number.");
		}
		board[row * cols + col] |= playerNum * 4;
	}

	/**
	 * Assumes a disk at position moveRow and moveCol
	 * and analyzes the vicinity with respect to win positions.
	 */
	private void analyzeWinPositions(int moveRow, int moveCol) {
		final int[] rowIncr = new int[] { 1, 0, 1, 1 };
		final int[] colIncr = new int[] { 0, 1, -1, 1 };
		int playerNum = getPlayerNum(moveRow, moveCol);
		WinPositionInfo[] wInfo = new WinPositionInfo[] {
				new WinPositionInfo(), new WinPositionInfo() };
		for (int i = 0; i < 4; i++) {
			int rIncr = rowIncr[i];
			int cIncr = colIncr[i];
			int diskCount = 1;

			for (int j = 0; j < 2; j++) {
				WinPositionInfo wInf = wInfo[j];
				wInf.clear();
				int rBound = rIncr > 0 ? getRows() : -1;
				int cBound = cIncr > 0 ? getCols() : -1;

				int row = moveRow + rIncr;
				int col = moveCol + cIncr;
				while (row != rBound && col != cBound) {
					int plNum = getPlayerNum(row, col);
					if (plNum == playerNum) {
						if (wInf.hasData())
							wInf.diskCount++;
						else
							diskCount++;
					} else if (plNum == 0) {
						if (!wInf.hasData()) {
							wInf.row = row;
							wInf.col = col;
						} else {
							break;
						}
					} else {
						break;
					}
					row += rIncr;
					col += cIncr;
				}
				rIncr = -rIncr;
				cIncr = -cIncr;
			}
			for (int j = 0; j < 2; j++) {
				WinPositionInfo wInf = wInfo[j];
				if (wInf.hasData() && diskCount + wInf.diskCount >= 3) {
					setWinPositionFor(wInf.row, wInf.col, playerNum);
				}
			}
		}
	}

	public int analyzePotentialWinPositions(Integer action) {
		final int[] rowIncr = new int[] { 1, 0, 1, 1 };
		final int[] colIncr = new int[] { 0, 1, -1, 1 };
		int moveCol = action;
		int moveRow = getFreeRow(moveCol);

		int playerNum = getPlayerToMove();
		int result = 0;
		for (int i = 0; i < 4; i++) {
			int rIncr = rowIncr[i];
			int cIncr = colIncr[i];
			int posCountSum = 0;

			for (int j = 0; j < 2; j++) {
				int rBound = rIncr > 0 ? getRows() : -1;
				int cBound = cIncr > 0 ? getCols() : -1;
				int posCount = 0;

				int row = moveRow + rIncr;
				int col = moveCol + cIncr;
				while (row != rBound && col != cBound && posCount < 3) {
					int plNum = getPlayerNum(row, col);
					if (plNum == 3 - playerNum)
						break;
					posCount++;
					row += rIncr;
					col += cIncr;
				}
				posCountSum += posCount;
				rIncr = -rIncr;
				cIncr = -cIncr;
			}
			if (posCountSum >= 3)
				result += posCountSum;
		}
		return result;
	}

	public ConnectFourState clone() {
		ConnectFourState result = null;
		try {
			result = (ConnectFourState) super.clone();
		} catch (CloneNotSupportedException e) {
			e.printStackTrace();
		}
		result.board = board.clone();
		return result;
	}

	@Override
	public int hashCode() {
		int result = 0;
		for (int i = 0; i < board.length; i++)
			result = result * 7 + board[i] + 1;
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj != null && getClass() == obj.getClass()) {
			ConnectFourState s = (ConnectFourState) obj;
			for (int i = 0; i < board.length; i++)
				if (board[i] != s.board[i])
					return false;
			return true;
		}
		return false;
	}

	// ////////////////////////////////////////////////////////////////////
	// nested classes

	static class WinPositionInfo {
		int row = -1;
		int col = -1;
		int diskCount;

		void clear() {
			row = -1;
			col = -1;
			diskCount = 0;
		}

		boolean hasData() {
			return row != -1;
		}
	}
}


text:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>XmlTreeBuilder (jsoup 1.8.4-SNAPSHOT API)</title>
<meta name="date" content="2015-11-06">
<link rel="stylesheet" type="text/css" href="../../../stylesheet.css" title="Style">

您的浏览器已禁用 JavaScript。

概览

程序包

类

使用

树

已过时

索引

帮助

上一个类

下一个类

框架

无框架

所有类

概要:

嵌套 |

字段 |

构造器 |

方法

详细资料:

字段 |

构造器 |

方法

org.jsoup.parser

类 XmlTreeBuilder

java.lang.Object

org.jsoup.parser.XmlTreeBuilder

public class XmlTreeBuilder
extends java.lang.Object

Use the XmlTreeBuilder when you want to parse XML without any of the HTML DOM rules being applied to the
 document.

Usage example: Document xmlDoc = Jsoup.parse(html, baseUrl, Parser.xmlParser());

作者:

Jonathan Hedley

字段概要

字段

限定符和类型
字段和说明

protected java.lang.String
baseUri

protected org.jsoup.parser.Token
currentToken

protected Document
doc

protected org.jsoup.parser.ParseErrorList
errors

protected java.util.ArrayList<Element>
stack

构造器概要

构造器

构造器和说明

XmlTreeBuilder()

方法概要

方法

限定符和类型
方法和说明

protected Element
currentElement()

protected void
initialiseParse(java.lang.String input,
               java.lang.String baseUri,
               org.jsoup.parser.ParseErrorList errors)

protected boolean
process(org.jsoup.parser.Token token)

protected boolean
processEndTag(java.lang.String name)

protected boolean
processStartTag(java.lang.String name)

boolean
processStartTag(java.lang.String name,
               Attributes attrs)

protected void
runParser()

从类继承的方法 java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

字段详细资料

doc

protected Document doc

stack

protected java.util.ArrayList<Element> stack

baseUri

protected java.lang.String baseUri

currentToken

protected org.jsoup.parser.Token currentToken

errors

protected org.jsoup.parser.ParseErrorList errors

构造器详细资料

XmlTreeBuilder

public XmlTreeBuilder()

方法详细资料

initialiseParse

protected void initialiseParse(java.lang.String input,
                   java.lang.String baseUri,
                   org.jsoup.parser.ParseErrorList errors)

process

protected boolean process(org.jsoup.parser.Token token)

runParser

protected void runParser()

processStartTag

protected boolean processStartTag(java.lang.String name)

processStartTag

public boolean processStartTag(java.lang.String name,
                      Attributes attrs)

processEndTag

protected boolean processEndTag(java.lang.String name)

currentElement

protected Element currentElement()

概览

程序包

类

使用

树

已过时

索引

帮助

上一个类

下一个类

框架

无框架

所有类

概要:

嵌套 |

字段 |

构造器 |

方法

详细资料:

字段 |

构造器 |

方法

Copyright © 2009-2015 Jonathan Hedley. All Rights Reserved.


text:
int readPGM(unsigned char **image, char *filename,
	    int *imageWidth, int *imageHeight, int *grayMax);

int writePGM(unsigned char *image, char *filename,
	     int imageWidth, int imageHeight, int grayMax);

#endif//_PGM_H_


text:
#ifndef GEOS_OP_ISVALIDOP_H
#define GEOS_OP_ISVALIDOP_H

#include <geos/export.h>

#include <geos/operation/valid/TopologyValidationError.h> // for inlined destructor

// Forward declarations
namespace geos {
	namespace util {
		class TopologyValidationError;
	}
	namespace geom {
		class CoordinateSequence;
		class GeometryFactory;
		class Geometry;
		class Point;
		class LinearRing;
		class LineString;
		class Polygon;
		class GeometryCollection;
		class MultiPolygon;
		class MultiLineString;
	}
	namespace geomgraph {
		class DirectedEdge;
		class EdgeIntersectionList;
		class PlanarGraph;
		class GeometryGraph;
	}
}

namespace geos {
namespace operation { // geos::operation
namespace valid { // geos::operation::valid

/** \brief
 * Implements the algorithsm required to compute the isValid()
 * method for {@link Geometry}s.
 */
class GEOS_DLL IsValidOp {
friend class Unload;
private:
	/// the base Geometry to be validated
	const geom::Geometry *parentGeometry;

	bool isChecked;

	// CHECKME: should this really be a pointer ?
	TopologyValidationError* validErr;

	// This is the version using 'isChecked' flag
	void checkValid();

	void checkValid(const geom::Geometry *g);
	void checkValid(const geom::Point *g);
	void checkValid(const geom::LinearRing *g);
	void checkValid(const geom::LineString *g);
	void checkValid(const geom::Polygon *g);
	void checkValid(const geom::MultiPolygon *g);
	void checkValid(const geom::GeometryCollection *gc);
	void checkConsistentArea(geomgraph::GeometryGraph *graph);

	/**
	 * Check that there is no ring which self-intersects
	 * (except of course at its endpoints).
	 * This is required by OGC topology rules (but not by other models
	 * such as ESRI SDE, which allow inverted shells and exverted holes).
	 *
	 * @param graph the topology graph of the geometry
	 */
	void checkNoSelfIntersectingRings(geomgraph::GeometryGraph *graph);

	/**
	 * check that a ring does not self-intersect, except at its endpoints.
	 * Algorithm is to count the number of times each node along edge
	 * occurs.
	 * If any occur more than once, that must be a self-intersection.
	 */
	void checkNoSelfIntersectingRing(
			geomgraph::EdgeIntersectionList &eiList);

	void checkTooFewPoints(geomgraph::GeometryGraph *graph);

	/**
	 * Test that each hole is inside the polygon shell.
	 * This routine assumes that the holes have previously been tested
	 * to ensure that all vertices lie on the shell or inside it.
	 * A simple test of a single point in the hole can be used,
	 * provide the point is chosen such that it does not lie on the
	 * boundary of the shell.
	 *
	 * @param p the polygon to be tested for hole inclusion
	 * @param graph a geomgraph::GeometryGraph incorporating the polygon
	 */
	void checkHolesInShell(const geom::Polygon *p,
			geomgraph::GeometryGraph *graph);

	/**
	 * Tests that no hole is nested inside another hole.
	 * This routine assumes that the holes are disjoint.
	 * To ensure this, holes have previously been tested
	 * to ensure that:
	 *
	 *  - they do not partially overlap
	 *    (checked by checkRelateConsistency)
	 *  - they are not identical
	 *    (checked by checkRelateConsistency)
	 *
	 */
	void checkHolesNotNested(const geom::Polygon *p,
			geomgraph::GeometryGraph *graph);

	/**
	 * Tests that no element polygon is wholly in the interior of another
	 * element polygon.
	 *
	 * Preconditions:
	 *
	 * - shells do not partially overlap
	 * - shells do not touch along an edge
	 * - no duplicate rings exist
	 *
	 * This routine relies on the fact that while polygon shells
	 * may touch at one or more vertices, they cannot touch at
	 * ALL vertices.
	 */
	void checkShellsNotNested(const geom::MultiPolygon *mp,
			geomgraph::GeometryGraph *graph);

	/**
	 * Check if a shell is incorrectly nested within a polygon.
	 * This is the case if the shell is inside the polygon shell,
	 * but not inside a polygon hole.
	 * (If the shell is inside a polygon hole, the nesting is valid.)
	 *
	 * The algorithm used relies on the fact that the rings must be
	 * properly contained.
	 * E.g. they cannot partially overlap (this has been previously
	 * checked by checkRelateConsistency
	 */
	void checkShellNotNested(const geom::LinearRing *shell,
			const geom::Polygon *p,
			geomgraph::GeometryGraph *graph);

	/**
	 * This routine checks to see if a shell is properly contained
	 * in a hole.
	 * It assumes that the edges of the shell and hole do not
	 * properly intersect.
	 *
	 * @return null if the shell is properly contained, or
	 *   a Coordinate which is not inside the hole if it is not
	 *
	 */
	const geom::Coordinate *checkShellInsideHole(
			const geom::LinearRing *shell,
			const geom::LinearRing *hole,
			geomgraph::GeometryGraph *graph);

	void checkConnectedInteriors(geomgraph::GeometryGraph &graph);

	void checkInvalidCoordinates(const geom::CoordinateSequence *cs);

	void checkInvalidCoordinates(const geom::Polygon *poly);

	void checkClosedRings(const geom::Polygon *poly);

	void checkClosedRing(const geom::LinearRing *ring);

	bool isSelfTouchingRingFormingHoleValid;

public:
	/**
	 * Find a point from the list of testCoords
	 * that is NOT a node in the edge for the list of searchCoords
	 *
	 * @return the point found, or NULL if none found
	 */
	static const geom::Coordinate *findPtNotNode(
			const geom::CoordinateSequence *testCoords,
			const geom::LinearRing *searchRing,
			geomgraph::GeometryGraph *graph);

	/**
	 * Checks whether a coordinate is valid for processing.
	 * Coordinates are valid iff their x and y coordinates are in the
	 * range of the floating point representation.
	 *
	 * @param coord the coordinate to validate
	 * @return true if the coordinate is valid
	 */
	static bool isValid(const geom::Coordinate &coord);

	/**
	 * Tests whether a {@link Geometry} is valid.
	 *
	 * @param geom the Geometry to test
	 * @return true if the geometry is valid
	 */
	static bool isValid(const geom::Geometry &geom);

	IsValidOp(const geom::Geometry *geom)
		:
		parentGeometry(geom),
		isChecked(false),
		validErr(NULL),
		isSelfTouchingRingFormingHoleValid(false)
	{}

	/// TODO: validErr can't be a pointer!
	virtual ~IsValidOp() {
		delete validErr;
	}

	bool isValid();

	TopologyValidationError* getValidationError();

	/** \brief
	 * Sets whether polygons using Self-Touching Rings to form
	 * holes are reported as valid.
	 *
	 * If this flag is set, the following Self-Touching conditions
	 * are treated as being valid:
	 *

	 *
the shell ring self-touches to create a hole touching the shell
	 *
a hole ring self-touches to create two holes touching at a point
	 *

	 *

	 * The default (following the OGC SFS standard)
	 * is that this condition is not valid (false).
	 *

	 * This does not affect whether Self-Touching Rings
	 * disconnecting the polygon interior are considered valid
	 * (these are considered to be invalid under the SFS,
	 * and many other spatial models as well).
	 * This includes "bow-tie" shells,
	 * which self-touch at a single point causing the interior to
	 * be disconnected,
	 * and "C-shaped" holes which self-touch at a single point causing
	 * an island to be formed.
	 *
	 * @param isValid states whether geometry with this condition is valid
	 */
	void setSelfTouchingRingFormingHoleValid(bool isValid)
	{
		isSelfTouchingRingFormingHoleValid = isValid;
	}

};

} // namespace geos.operation.valid
} // namespace geos.operation
} // namespace geos

#endif // GEOS_OP_ISVALIDOP_H

/**********************************************************************
 * $Log$
 * Revision 1.2  2006/03/29 13:53:59  strk
 * EdgeRing equipped with Invariant testing function and lots of exceptional assertions. Removed useless heap allocations, and pointers usages.
 *
 * Revision 1.1  2006/03/20 16:57:44  strk
 * spatialindex.h and opValid.h headers split
 *
 **********************************************************************/


text:
"Ideogenesis: Undump database from a file."

from __future__ import print_function, absolute_import

import sys

from ideogenesis import dump
from ideogenesis import settings
from ideogenesis import utils

if __name__ == "__main__":
    args = utils.get_args(argdefs=[(['filepath'],
                                    dict(nargs='?', default='dump.tar.gz'))],
                          description='Ideogenesis db undump utility')
    utils.load_settings(filepath=args.settings, verbose=args.verbose)
    neo4j = utils.get_neo4j(check=True)
    if args.verbose:
        print('wiping out previous data...', file=sys.stderr)
    dump.wipeout(neo4j, verbose=args.verbose)
    dump.undump(neo4j, args.filepath, verbose=args.verbose)


text:
<!DOCTYPE html>

  <title>CSS Test: Testing the baseline of a vertical flex container with baseline-aligned flex items</title>
  <link rel="author" title="Daniel Holbert" href="mailto:dholbert@mozilla.com">
  <link rel="help" href="http://www.w3.org/TR/css-flexbox-1/#flex-baselines">
  <link rel="match" href="flexbox-baseline-align-self-baseline-vert-001-ref.html">
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="support/ahem.css" />

  a

b

c

d

e

f

g

h

i

j


text:
        banner ? Storage::url($shop->banner) : url('images/default/banner.png') }}" class="img-responsive">

        photo ? Storage::url($shop->photo) : url('images/default/shop.png') }}" class="img-responsive img-circle img-avatar-lg" alt="{{ $shop->name }}">

{{ $shop->name }}

        @lang('actions.add_product')
        @if (Route::current()->getName() == 'shop.index')
		    @lang('actions.manage_product')
		    @lang('actions.edit')
		@endif


text:
using AI.Search.Adversarial.UnitTests.TestStage;
using Moq;
using Ploeh.AutoFixture;
using Ploeh.AutoFixture.AutoMoq;
using System;
using System.Linq;
using Xunit;

namespace AI.Search.Adversarial.UnitTests
{
    public class AdversarialSearchTestFixture
    {
        private readonly IFixture _fixture;
        private readonly Mock<IAdversarialSearchProblem<TreeState, TreeAction>> _problem;
        private readonly Mock<IStateEvaluator<TreeState>> _stateEvaluator;
        private readonly TestTree _tree;

        public AdversarialSearchTestFixture()
        {
            _fixture = new Fixture().Customize(new AutoMoqCustomization());

            _problem = _fixture.Freeze<Mock<IAdversarialSearchProblem<TreeState, TreeAction>>>();
            _stateEvaluator = _fixture.Freeze<Mock<IStateEvaluator<TreeState>>>();
            _tree = new TestTree();
            _tree.SetupProblem(_problem, _stateEvaluator);
        }

        [Fact]
        public void RunMinimax_WithNullState_ThrowsAnArgumentNullException()
        {
            // Arrange
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            Action act = () => subject.RunMinimax(null, 1);

            // Assert
            var ex = Assert.Throws<ArgumentNullException>(act);
            Assert.Equal("startingState", ex.ParamName);
        }

        [Theory]
        [InlineData(-5)]
        [InlineData(-1)]
        public void RunMinimax_WithMaxDepthLessThanZero_ThrowsAnArgumentOutOfRangeException(int maxDepth)
        {
            // Arrange
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            Action act = () => subject.RunMinimax(new TreeState("Some State"), maxDepth);

            // Assert
            var ex = Assert.Throws<ArgumentOutOfRangeException>(act);
            Assert.Equal("maxDepth", ex.ParamName);
        }

        [Fact]
        public void RunMinimax_MaxDepthZero_ReturnsTheEvaluatedStartingState()
        {
            // Arrange
            var startingState = _tree.StartingState;
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            var result = subject.RunMinimax(startingState, 0);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(startingState, result.State);
            Assert.Equal(_tree.GetValue(startingState.Name), result.Value);
            Assert.Empty(result.ActionsToState);
        }

        [Fact]
        public void RunMinimax_MaxDepthOfOne_ReturnsTheMaximumOfTheExpandedStates()
        {
            // Arrange
            var startingState = _tree.StartingState;
            var expectedState = "C2";
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            var result = subject.RunMinimax(startingState, 1);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedState, result.State.Name);
            Assert.Equal(_tree.GetValue(expectedState), result.Value);
            Assert.Equal(_tree.GetActionsToState(result.State), result.ActionsToState);
        }

        [Fact]
        public void RunMinimax_MaxDepthOfTwo_ReturnsTheCorrectAnswer()
        {
            // Arrange
            var startingState = _tree.StartingState;
            var expectedState = "H3";
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            var result = subject.RunMinimax(startingState, 2);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedState, result.State.Name);
            Assert.Equal(_tree.GetValue(expectedState), result.Value);
            Assert.Equal(_tree.GetActionsToState(result.State), result.ActionsToState);
        }

        [Fact]
        public void RunMinimax_MaxDepthOfThree_ReturnsTheCorrectAnswer()
        {
            // Arrange
            var startingState = _tree.StartingState;
            var expectedState = "X4";
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            var result = subject.RunMinimax(startingState, 3);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedState, result.State.Name);
            Assert.Equal(_tree.GetValue(expectedState), result.Value);
            Assert.Equal(_tree.GetActionsToState(result.State), result.ActionsToState);
        }

        [Fact]
        public void RunMinimax_MaxDepthGreaterThanTheTreeDepth_ReturnsTheCorrectAnswer()
        {
            // Arrange
            var startingState = _tree.StartingState;
            var expectedState = "X4";
            var subject = _fixture.Create<AdversarialSearch<TreeState, TreeAction>>();

            // Act
            var result = subject.RunMinimax(startingState, 1000);

            // Assert
            Assert.NotNull(result);
            Assert.Equal(expectedState, result.State.Name);
            Assert.Equal(_tree.GetValue(expectedState), result.Value);
            Assert.Equal(_tree.GetActionsToState(result.State), result.ActionsToState);
        }
    }
}


text:
<?php

namespace CodeTool\ArtifactDownloader\UnitStatus\Updater\Client;

use Psr\Log\LoggerInterface;

class UnitStatusUpdaterClientLogDecorator implements UnitStatusUpdaterClientInterface
{
    /**
     * @var LoggerInterface
     */
    private $logger;

    /**
     * @var UnitStatusUpdaterClientInterface
     */
    private $unitStatusUpdaterClient;

    public function __construct(LoggerInterface $logger, UnitStatusUpdaterClientInterface $unitStatusUpdaterClient)
    {
        $this->logger = $logger;
        $this->unitStatusUpdaterClient = $unitStatusUpdaterClient;
    }

    public function update($statusString)
    {
        $this->logger->debug(sprintf('Try to update unit status to %s', $statusString));

        $result = $this->unitStatusUpdaterClient->update($statusString);

        if (null !== $result->getError()) {
            $this->logger->warning(sprintf('Failed to update unit status: %s', $result->getError()->getMessage()));
        } else {
            $this->logger->info('Successfully updated unit status.');
        }

        return $this->unitStatusUpdaterClient->update($statusString);
    }
}