protected abstract object GetFileObject(FileIntValue fi, Variables.Root variables);
protected virtual void ProcessFileContents(File file, Variables.Root variables) { string[] contents = file.Contents.Split('\n'); int lineCount = 0, charCount = 0, maxCharsPerLine = 0; foreach(string line in contents){ if (!line.Trim().Equals("{")){ ++lineCount; } if (line.Length > 0){ int realLength = ParseUtils.CountCharacters(line); charCount += realLength; maxCharsPerLine = Math.Max(maxCharsPerLine, realLength); } } variables.Increment(Key+"LinesTotal", lineCount); variables.Increment(Key+"CharsTotal", charCount); variables.Maximum(Key+"LinesMax", lineCount); variables.Maximum(Key+"CharsMax", charCount); variables.Maximum(Key+"CharsPerLineMax", maxCharsPerLine); State state = variables.GetStateObject<State>(stateOwner); FileIntValue fileLines = new FileIntValue(file, lineCount); state.MaxLines.Add(fileLines); state.MinLines.Add(fileLines); FileIntValue fileChars = new FileIntValue(file, charCount); state.MaxChars.Add(fileChars); state.MinChars.Add(fileChars); }
protected override object GetFileObject(FileIntValue fi, Variables.Root variables) { JavaState state = variables.GetStateObject<JavaState>(this); return new { package = state.GetFile(fi.File).Package.Replace('.', '/')+'/', file = Path.GetFileName(fi.File.FullPath), amount = fi.Value }; }