github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/pkg/formatters/factory.go (about)

     1  package formatters
     2  
     3  import (
     4  	"io"
     5  
     6  	"github.com/khulnasoft-lab/defsec/pkg/scan"
     7  )
     8  
     9  func New() *factory {
    10  	return &factory{
    11  		base: NewBase(),
    12  	}
    13  }
    14  
    15  type factory struct {
    16  	base *Base
    17  }
    18  
    19  func (f *factory) Build() Formatter {
    20  	return f.base
    21  }
    22  
    23  func (f *factory) WithIncludePassed(include bool) *factory {
    24  	f.base.includePassed = include
    25  	return f
    26  }
    27  
    28  func (f *factory) WithIncludeIgnored(include bool) *factory {
    29  	f.base.includeIgnored = include
    30  	return f
    31  }
    32  
    33  func (f *factory) WithMetricsEnabled(enabled bool) *factory {
    34  	f.base.enableMetrics = enabled
    35  	return f
    36  }
    37  
    38  func (f *factory) WithDebugEnabled(enabled bool) *factory {
    39  	f.base.enableDebug = enabled
    40  	return f
    41  }
    42  
    43  func (f *factory) WithColoursEnabled(enabled bool) *factory {
    44  	f.base.enableColours = enabled
    45  	return f
    46  }
    47  
    48  func (f *factory) WithGroupingEnabled(enabled bool) *factory {
    49  	f.base.enableGrouping = enabled
    50  	return f
    51  }
    52  
    53  func (f *factory) WithFSRoot(root string) *factory {
    54  	f.base.fsRoot = root
    55  	return f
    56  }
    57  
    58  func (f *factory) WithRelativePaths(relative bool) *factory {
    59  	f.base.relative = relative
    60  	return f
    61  }
    62  
    63  func (f *factory) WithBaseDir(dir string) *factory {
    64  	f.base.baseDir = dir
    65  	return f
    66  }
    67  
    68  func (f *factory) WithCustomFormatterFunc(fn func(ConfigurableFormatter, scan.Results) error) *factory {
    69  	f.base.outputOverride = fn
    70  	return f
    71  }
    72  
    73  func (f *factory) WithLinksFunc(fn func(result scan.Result) []string) *factory {
    74  	f.base.linksOverride = fn
    75  	return f
    76  }
    77  
    78  func (f *factory) WithWriter(w io.Writer) *factory {
    79  	f.base.writer = w
    80  	return f
    81  }
    82  
    83  func (f *factory) AsJSON() *factory {
    84  	f.base.outputOverride = outputJSON
    85  	return f
    86  }
    87  
    88  func (f *factory) AsCheckStyle() *factory {
    89  	f.base.outputOverride = outputCheckStyle
    90  	return f
    91  }
    92  
    93  func (f *factory) AsCSV() *factory {
    94  	f.base.outputOverride = outputCSV
    95  	return f
    96  }
    97  
    98  func (f *factory) AsJUnit() *factory {
    99  	f.base.outputOverride = outputJUnit
   100  	return f
   101  }
   102  
   103  func (f *factory) AsSARIF() *factory {
   104  	f.base.outputOverride = outputSARIF
   105  	return f
   106  }
   107  
   108  func (f *factory) AsSimple() *factory {
   109  	f.base.outputOverride = outputSimple
   110  	return f
   111  }