xref: /aosp_15_r20/external/spdx-tools/tvsaver/saver2v1/save_snippet.go (revision ba677afa8f67bb56cbc794f4d0e378e0da058e16)
1*ba677afaSXin Li// SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
2*ba677afaSXin Li
3*ba677afaSXin Lipackage saver2v1
4*ba677afaSXin Li
5*ba677afaSXin Liimport (
6*ba677afaSXin Li	"fmt"
7*ba677afaSXin Li	"io"
8*ba677afaSXin Li
9*ba677afaSXin Li	"github.com/spdx/tools-golang/spdx/common"
10*ba677afaSXin Li	"github.com/spdx/tools-golang/spdx/v2_1"
11*ba677afaSXin Li)
12*ba677afaSXin Li
13*ba677afaSXin Lifunc renderSnippet2_1(sn *v2_1.Snippet, w io.Writer) error {
14*ba677afaSXin Li	if sn.SnippetSPDXIdentifier != "" {
15*ba677afaSXin Li		fmt.Fprintf(w, "SnippetSPDXID: %s\n", common.RenderElementID(sn.SnippetSPDXIdentifier))
16*ba677afaSXin Li	}
17*ba677afaSXin Li	snFromFileIDStr := common.RenderElementID(sn.SnippetFromFileSPDXIdentifier)
18*ba677afaSXin Li	if snFromFileIDStr != "" {
19*ba677afaSXin Li		fmt.Fprintf(w, "SnippetFromFileSPDXID: %s\n", snFromFileIDStr)
20*ba677afaSXin Li	}
21*ba677afaSXin Li
22*ba677afaSXin Li	for _, snippetRange := range sn.Ranges {
23*ba677afaSXin Li		if snippetRange.StartPointer.Offset != 0 && snippetRange.EndPointer.Offset != 0 {
24*ba677afaSXin Li			fmt.Fprintf(w, "SnippetByteRange: %d:%d\n", snippetRange.StartPointer.Offset, snippetRange.EndPointer.Offset)
25*ba677afaSXin Li		}
26*ba677afaSXin Li		if snippetRange.StartPointer.LineNumber != 0 && snippetRange.EndPointer.LineNumber != 0 {
27*ba677afaSXin Li			fmt.Fprintf(w, "SnippetLineRange: %d:%d\n", snippetRange.StartPointer.LineNumber, snippetRange.EndPointer.LineNumber)
28*ba677afaSXin Li		}
29*ba677afaSXin Li	}
30*ba677afaSXin Li	if sn.SnippetLicenseConcluded != "" {
31*ba677afaSXin Li		fmt.Fprintf(w, "SnippetLicenseConcluded: %s\n", sn.SnippetLicenseConcluded)
32*ba677afaSXin Li	}
33*ba677afaSXin Li	for _, s := range sn.LicenseInfoInSnippet {
34*ba677afaSXin Li		fmt.Fprintf(w, "LicenseInfoInSnippet: %s\n", s)
35*ba677afaSXin Li	}
36*ba677afaSXin Li	if sn.SnippetLicenseComments != "" {
37*ba677afaSXin Li		fmt.Fprintf(w, "SnippetLicenseComments: %s\n", textify(sn.SnippetLicenseComments))
38*ba677afaSXin Li	}
39*ba677afaSXin Li	if sn.SnippetCopyrightText != "" {
40*ba677afaSXin Li		fmt.Fprintf(w, "SnippetCopyrightText: %s\n", textify(sn.SnippetCopyrightText))
41*ba677afaSXin Li	}
42*ba677afaSXin Li	if sn.SnippetComment != "" {
43*ba677afaSXin Li		fmt.Fprintf(w, "SnippetComment: %s\n", textify(sn.SnippetComment))
44*ba677afaSXin Li	}
45*ba677afaSXin Li	if sn.SnippetName != "" {
46*ba677afaSXin Li		fmt.Fprintf(w, "SnippetName: %s\n", sn.SnippetName)
47*ba677afaSXin Li	}
48*ba677afaSXin Li
49*ba677afaSXin Li	fmt.Fprintf(w, "\n")
50*ba677afaSXin Li
51*ba677afaSXin Li	return nil
52*ba677afaSXin Li}
53