Esempio n. 1
0
        public override bool TryExtract <T1>(Mark mark, Extractor <T1> extractor, CSVHeaderInformation optionalData)
        {
            int from = mark.StartPosition();
            int to   = mark.Position();

            return(extractor.Extract(_buffer, from, to - from, mark.Quoted, optionalData));
        }
Esempio n. 2
0
            protected internal override Header.Entry Entry <T1>(int index, string name, string typeSpec, Group group, Extractors extractors, Extractor <T1> idExtractor)
            {
                Type type = null;
//JAVA TO C# CONVERTER WARNING: Java wildcard generics have no direct equivalent in .NET:
//ORIGINAL LINE: org.neo4j.csv.reader.Extractor<?> extractor = null;
                Extractor <object>   extractor         = null;
                CSVHeaderInformation optionalParameter = null;

                if (string.ReferenceEquals(typeSpec, null))
                {                         // Property
                    type      = Type.Property;
                    extractor = extractors.String();
                }
                else
                {
                    Pair <string, string> split = SplitTypeSpecAndOptionalParameter(typeSpec);
                    typeSpec = split.First();
                    string optionalParameterString = split.Other();
                    if (!string.ReferenceEquals(optionalParameterString, null))
                    {
                        if (Extractors.PointExtractor.NAME.Equals(typeSpec))
                        {
                            optionalParameter = PointValue.parseHeaderInformation(optionalParameterString);
                        }
                        else if (Extractors.TimeExtractor.NAME.Equals(typeSpec) || Extractors.DateTimeExtractor.NAME.Equals(typeSpec))
                        {
                            optionalParameter = TemporalValue.parseHeaderInformation(optionalParameterString);
                        }
                    }

                    if (typeSpec.Equals(Type.StartId.name(), StringComparison.OrdinalIgnoreCase))
                    {
                        type      = Type.StartId;
                        extractor = idExtractor;
                    }
                    else if (typeSpec.Equals(Type.EndId.name(), StringComparison.OrdinalIgnoreCase))
                    {
                        type      = Type.EndId;
                        extractor = idExtractor;
                    }
                    else if (typeSpec.Equals(Type.Type.name(), StringComparison.OrdinalIgnoreCase))
                    {
                        type      = Type.Type;
                        extractor = extractors.String();
                    }
                    else if (IsRecognizedType(typeSpec))
                    {
                        throw new HeaderException("Unexpected relationship header type '" + typeSpec + "'");
                    }
                    else
                    {
                        type      = Type.Property;
                        extractor = ParsePropertyType(typeSpec, extractors);
                    }
                }
                return(new Header.Entry(name, type, group, extractor, optionalParameter));
            }
Esempio n. 3
0
        /// <summary>
        /// Parses the given text into a PointValue. The information stated in the header is saved into the PointValue
        /// unless it is overridden by the information in the text
        /// </summary>
        /// <param name="text"> the input text to be parsed into a PointValue </param>
        /// <param name="fieldsFromHeader"> must be a value obtained from <seealso cref="parseHeaderInformation(CharSequence)"/> or null </param> </returns> </param>
        /// <returns> a PointValue instance with information from the {<param name="fieldsFromHeader">} and {<param name="text">} </param>
        public static PointValue Parse(CharSequence text, CSVHeaderInformation fieldsFromHeader)
        {
            PointBuilder fieldsFromData = ParseHeaderInformation(text);

            if (fieldsFromHeader != null)
            {
                // Merge InputFields: Data fields override header fields
                if (!(fieldsFromHeader is PointBuilder))
                {
                    throw new System.InvalidOperationException("Wrong header information type: " + fieldsFromHeader);
                }
                fieldsFromData.MergeWithHeader(( PointBuilder )fieldsFromHeader);
            }
            return(FromInputFields(fieldsFromData));
        }
Esempio n. 4
0
        internal static void ParseHeaderInformation(CharSequence text, string type, CSVHeaderInformation info)
        {
            Matcher mapMatcher   = MapPattern.matcher(text);
            string  errorMessage = format("Failed to parse %s value: '%s'", type, text);

            if (!(mapMatcher.find() && mapMatcher.groupCount() == 1))
            {
                throw new InvalidValuesArgumentException(errorMessage);
            }

            string mapContents = mapMatcher.group(1);

            if (mapContents.Length == 0)
            {
                throw new InvalidValuesArgumentException(errorMessage);
            }

            Matcher matcher = KeyValuePattern.matcher(mapContents);

            if (!(matcher.find()))
            {
                throw new InvalidValuesArgumentException(errorMessage);
            }

            do
            {
                string key = matcher.group("k");
                if (!string.ReferenceEquals(key, null))
                {
                    string value = matcher.group("v");
                    if (!string.ReferenceEquals(value, null))
                    {
                        info.Assign(key, value);
                    }
                }
            } while (matcher.find());
        }
Esempio n. 5
0
 public override EXTRACTOR Extract <EXTRACTOR>(Mark mark, EXTRACTOR extractor, CSVHeaderInformation optionalData)
 {
     if (!TryExtract(mark, extractor, optionalData))
     {
         throw new System.InvalidOperationException(extractor + " didn't extract value for " + mark + ". For values which are optional please use tryExtract method instead");
     }
     return(extractor);
 }
Esempio n. 6
0
 protected internal override bool Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
 {
     if (length > 1)
     {
         throw new System.InvalidOperationException("Was told to extract a character, but length:" + length);
     }
     ValueConflict = data[offset];
     return(true);
 }
Esempio n. 7
0
            protected internal override void Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
            {
                int numberOfValues = numberOfValues(data, offset, length);

                ValueConflict = numberOfValues > 0 ? new bool[numberOfValues] : Empty;
                for (int arrayIndex = 0, charIndex = 0; arrayIndex < numberOfValues; arrayIndex++, charIndex++)
                {
                    int numberOfChars = CharsToNextDelimiter(data, offset + charIndex, length - charIndex);
                    ValueConflict[arrayIndex] = ExtractBoolean(data, offset + charIndex, numberOfChars);
                    charIndex += numberOfChars;
                }
            }
Esempio n. 8
0
 protected internal override bool Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
 {
     ValueConflict = PointValue.parse(CharBuffer.wrap(data, offset, length), optionalData);
     return(true);
 }
Esempio n. 9
0
 protected internal abstract void Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData);
Esempio n. 10
0
            protected internal override void Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
            {
                int numberOfValues = numberOfValues(data, offset, length);

                ValueConflict = numberOfValues > 0 ? new double[numberOfValues] : Empty;
                for (int arrayIndex = 0, charIndex = 0; arrayIndex < numberOfValues; arrayIndex++, charIndex++)
                {
                    int numberOfChars = CharsToNextDelimiter(data, offset + charIndex, length - charIndex);
                    // TODO Figure out a way to do this conversion without round tripping to String
                    // parseDouble automatically handles leading/trailing whitespace so no need for us to do it
                    ValueConflict[arrayIndex] = double.Parse(string.valueOf(data, offset + charIndex, numberOfChars));
                    charIndex += numberOfChars;
                }
            }
Esempio n. 11
0
 protected internal override bool Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
 {
     try
     {
         // TODO Figure out a way to do this conversion without round tripping to String
         // parseDouble automatically handles leading/trailing whitespace so no need for us to do it
         ValueConflict = double.Parse(string.valueOf(data, offset, length));
     }
     catch (System.FormatException)
     {
         throw new System.FormatException("Not a number: \"" + string.valueOf(data, offset, length) + "\"");
     }
     return(true);
 }
Esempio n. 12
0
 public override bool Extract(char[] data, int offset, int length, bool hadQuotes, CSVHeaderInformation optionalData)
 {
     Extract0(data, offset, length, optionalData);
     return(true);
 }
Esempio n. 13
0
 public static TimeValue Parse(CharSequence text, System.Func <ZoneId> defaultZone, CSVHeaderInformation fieldsFromHeader)
 {
     if (fieldsFromHeader != null)
     {
         if (!(fieldsFromHeader is TimeCSVHeaderInformation))
         {
             throw new System.InvalidOperationException("Wrong header information type: " + fieldsFromHeader);
         }
         // Override defaultZone
         defaultZone = (( TimeCSVHeaderInformation )fieldsFromHeader).ZoneSupplier(defaultZone);
     }
     return(Parse(typeof(TimeValue), _pattern, TimeValue.parse, text, defaultZone));
 }
Esempio n. 14
0
 protected internal override bool Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
 {
     ValueConflict = ExtractBoolean(data, offset, length);
     return(true);
 }
Esempio n. 15
0
 protected internal override bool Extract0(char[] data, int offset, int length, CSVHeaderInformation optionalData)
 {
     ValueConflict = safeCastLongToByte(ExtractLong(data, offset, length));
     return(true);
 }
Esempio n. 16
0
 public override bool Extract(char[] data, int offset, int length, bool hadQuotes, CSVHeaderInformation optionalData)
 {
     if (NullValue(length, hadQuotes))
     {
         Clear();
         return(false);
     }
     return(Extract0(data, offset, length, optionalData));
 }
Esempio n. 17
0
 public abstract bool Extract(char[] data, int offset, int length, bool hadQuotes, CSVHeaderInformation optionalData);