public MZTabDescription(string version, MzTabMode mzTabMode, MzTabType mzTabType)
        {
            this.version = version ?? default_version;

            _mzTabMode = mzTabMode;
            _mzTabType = mzTabType;
        }
 public bool IsMandatory(MzTabType type, MzTabMode mode)
 {
     return GetFieldType(type, mode).Equals("mandatory", StringComparison.CurrentCultureIgnoreCase);
 }
        public string GetFieldType(MzTabType type, MzTabMode mode)
        {
            int[] i = ArrayUtils.IndicesOf(_types, type);
            if (i.Length == 0){
                return null;
            }

            var temp1 = ArrayUtils.SubArray(_modes, i);
            var temp2 = ArrayUtils.SubArray(_results, i);

            i = ArrayUtils.IndicesOf(temp1, mode);
            if (i.Length == 0){
                return null;
            }

            temp2 = ArrayUtils.SubArray(temp2, i);

            return temp2.FirstOrDefault();
        }
 public void Add(MzTabType type, MzTabMode mode, string result)
 {
     _types.Add(type);
     _modes.Add(mode);
     _results.Add(result);
 }
 public string GetFieldType(MzTabType type, MzTabMode mode)
 {
     return _fieldType.GetFieldType(type, mode);
 }
 /**
  * Refine optional columns based one {@link MZTabDescription.Mode} and {@link MZTabDescription.Type}
  * These re-validate operation will called in {@link #refine()} method.
  */
 protected void refineOptionalColumn(MzTabMode mode, MzTabType type, string columnHeader)
 {
     if (factory.FindColumnByHeader(columnHeader) == null){
         throw new MZTabException(new MZTabError(LogicalErrorType.NotDefineInHeader, _lineNumber, columnHeader,
                                                 mode.ToString(), type.ToString()));
     }
 }
 public MZTabDescription(MzTabMode mzTabMode, MzTabType mzTabType)
     : this(null, mzTabMode, mzTabType)
 {
 }