Initial commit
This commit is contained in:
commit
0f717cd2af
16 changed files with 574 additions and 0 deletions
8
.idea/.gitignore
vendored
Normal file
8
.idea/.gitignore
vendored
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
# Default ignored files
|
||||||
|
/shelf/
|
||||||
|
/workspace.xml
|
||||||
|
# Datasource local storage ignored files
|
||||||
|
/dataSources/
|
||||||
|
/dataSources.local.xml
|
||||||
|
# Editor-based HTTP Client requests
|
||||||
|
/httpRequests/
|
7
.idea/dictionaries/jakoubek.xml
Normal file
7
.idea/dictionaries/jakoubek.xml
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
<component name="ProjectDictionaryState">
|
||||||
|
<dictionary name="jakoubek">
|
||||||
|
<words>
|
||||||
|
<w>ferag</w>
|
||||||
|
</words>
|
||||||
|
</dictionary>
|
||||||
|
</component>
|
8
.idea/feragstring.iml
Normal file
8
.idea/feragstring.iml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<module type="WEB_MODULE" version="4">
|
||||||
|
<component name="NewModuleRootManager">
|
||||||
|
<content url="file://$MODULE_DIR$" />
|
||||||
|
<orderEntry type="inheritedJdk" />
|
||||||
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
</component>
|
||||||
|
</module>
|
6
.idea/misc.xml
Normal file
6
.idea/misc.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JavaScriptSettings">
|
||||||
|
<option name="languageLevel" value="ES6" />
|
||||||
|
</component>
|
||||||
|
</project>
|
8
.idea/modules.xml
Normal file
8
.idea/modules.xml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="ProjectModuleManager">
|
||||||
|
<modules>
|
||||||
|
<module fileurl="file://$PROJECT_DIR$/.idea/feragstring.iml" filepath="$PROJECT_DIR$/.idea/feragstring.iml" />
|
||||||
|
</modules>
|
||||||
|
</component>
|
||||||
|
</project>
|
6
.idea/vcs.xml
Normal file
6
.idea/vcs.xml
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="VcsDirectoryMappings">
|
||||||
|
<mapping directory="$PROJECT_DIR$" vcs="Git" />
|
||||||
|
</component>
|
||||||
|
</project>
|
9
README.md
Normal file
9
README.md
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
# feragstring
|
||||||
|
|
||||||
|
*feragstring* is a Go package for creating a Ferag string file from a JSON data structure. If you don't know what Ferag (the company) or a Ferag string is you probably don't need this package.
|
||||||
|
|
||||||
|
## Installation
|
||||||
|
|
||||||
|
```bash
|
||||||
|
go get -u github.com/jakoubek/feragstring
|
||||||
|
```
|
63
ferag.go
Normal file
63
ferag.go
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
const (
|
||||||
|
dateInputFormatISO = "2006-01-02"
|
||||||
|
dateOutputFormat = "060102"
|
||||||
|
linebreak = "\r\n"
|
||||||
|
)
|
||||||
|
|
||||||
|
type FeragString struct {
|
||||||
|
TitleInfo *TitleInfo
|
||||||
|
TitleEnd *TitleEnd
|
||||||
|
ProductReferences []*ProductReference
|
||||||
|
ProductReferencesNr int
|
||||||
|
RouteListEntries []*RouteListEntry
|
||||||
|
RouteListEntryCount int
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewFeragString() *FeragString {
|
||||||
|
fs := FeragString{
|
||||||
|
TitleInfo: NewTitleInfo(),
|
||||||
|
TitleEnd: NewTitleEnd(),
|
||||||
|
}
|
||||||
|
return &fs
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *FeragString) SetTitleName(titleName string) {
|
||||||
|
fs.TitleInfo.SetTitleName(titleName)
|
||||||
|
fs.TitleEnd.SetTitleName(titleName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *FeragString) PrintOut() string {
|
||||||
|
info := fs.TitleInfo.Message()
|
||||||
|
|
||||||
|
for _, pr := range fs.ProductReferences {
|
||||||
|
info += pr.Message()
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, rl := range fs.RouteListEntries {
|
||||||
|
info += rl.Message()
|
||||||
|
}
|
||||||
|
|
||||||
|
info += fs.TitleEnd.Message()
|
||||||
|
return info
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *FeragString) AddProductReference(pr *ProductReference) error {
|
||||||
|
fs.ProductReferencesNr++
|
||||||
|
pr.SetProductReferenceNumber(fs.ProductReferencesNr)
|
||||||
|
if pr.productReferenceNumber == 1 && pr.productUsageType == 0 {
|
||||||
|
pr.SetProductUsageType(1)
|
||||||
|
}
|
||||||
|
fs.ProductReferences = append(fs.ProductReferences, pr)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fs *FeragString) AddRouteListEntry(rl *RouteListEntry) error {
|
||||||
|
fs.RouteListEntryCount++
|
||||||
|
if rl.routeCode == 0 {
|
||||||
|
rl.SetRouteCode(fs.RouteListEntryCount)
|
||||||
|
}
|
||||||
|
fs.RouteListEntries = append(fs.RouteListEntries, rl)
|
||||||
|
return nil
|
||||||
|
}
|
27
ferag_message.go
Normal file
27
ferag_message.go
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type FeragMessage struct {
|
||||||
|
messageStart string
|
||||||
|
messageEnd string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fm *FeragMessage) getMessageStart() string {
|
||||||
|
return fmt.Sprintf("%%%s", fm.messageStart)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (fm *FeragMessage) getMessageEnd() string {
|
||||||
|
return fmt.Sprintf("%s", fm.messageEnd)
|
||||||
|
}
|
||||||
|
|
||||||
|
type MessageTemplateFunc func(*FeragMessage, string) string
|
||||||
|
|
||||||
|
func (fm *FeragMessage) MessageTemplate() MessageTemplateFunc {
|
||||||
|
return func(fm *FeragMessage, s string) string {
|
||||||
|
message := fm.getMessageStart()
|
||||||
|
message += s
|
||||||
|
message += fm.getMessageEnd() + linebreak
|
||||||
|
return message
|
||||||
|
}
|
||||||
|
}
|
79
ferag_test.go
Normal file
79
ferag_test.go
Normal file
|
@ -0,0 +1,79 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestNewFeragString(t *testing.T) {
|
||||||
|
fs := NewFeragString()
|
||||||
|
fs.SetTitleName("MOP10629")
|
||||||
|
|
||||||
|
fs.TitleInfo.SetPrintObjectName("MOP1")
|
||||||
|
fs.TitleInfo.SetPublicationDate("2019-06-29")
|
||||||
|
fs.TitleInfo.SetCountryCode("13")
|
||||||
|
fs.TitleInfo.SetPrintObjectColor("03368448")
|
||||||
|
|
||||||
|
// Produktreferenzen
|
||||||
|
pr1 := NewProductReference()
|
||||||
|
pr1.SetProductName("HP MOP1 KERN")
|
||||||
|
pr1.SetCopiesAssigned(56433)
|
||||||
|
pr1.SetSupervision(1)
|
||||||
|
pr1.SetOverlap(5)
|
||||||
|
mp := MissingParameter{
|
||||||
|
missingRate: 1,
|
||||||
|
missingSize: 1,
|
||||||
|
}
|
||||||
|
pr1.SetMissingParameter(mp)
|
||||||
|
pr1.SetIssueReference("HPMOP1 K")
|
||||||
|
fs.AddProductReference(pr1)
|
||||||
|
// ------------------------------------------
|
||||||
|
pr2 := NewProductReference()
|
||||||
|
pr2.SetProductName("Beilage Rossmann ET 29.06.19")
|
||||||
|
pr2.SetProductUsageType(3)
|
||||||
|
pr2.SetCopiesAssigned(36000)
|
||||||
|
pr2.SetProductWeight(180)
|
||||||
|
pr2.SetSupervision(1)
|
||||||
|
pr2.SetOverlap(1)
|
||||||
|
pr2.SetIssueReference("19004378")
|
||||||
|
fs.AddProductReference(pr2)
|
||||||
|
// Produktreferenzen - Ende
|
||||||
|
|
||||||
|
// Route Lists
|
||||||
|
rl1 := NewRouteListEntry()
|
||||||
|
rl1.SetRouteName("UT002223")
|
||||||
|
rl1.SetCopiesInRoute(309)
|
||||||
|
fs.AddRouteListEntry(rl1)
|
||||||
|
rl2 := NewRouteListEntry()
|
||||||
|
rl2.SetRouteName("UT888888")// Route Lists - Ende
|
||||||
|
rl2.SetCopiesInRoute(80)
|
||||||
|
fs.AddRouteListEntry(rl2)
|
||||||
|
producedContent := fs.PrintOut()
|
||||||
|
|
||||||
|
filename := "D:\\TEMP\\Feragstring\\ferag.txt"
|
||||||
|
err := ioutil.WriteFile(filename, []byte(producedContent), 0644)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
testcontent := getTestFileContent("D:\\TEMP\\Feragstring\\test.txt")
|
||||||
|
fmt.Println("=======================")
|
||||||
|
fmt.Println("TEST:")
|
||||||
|
fmt.Println(testcontent)
|
||||||
|
fmt.Println("-----------------------")
|
||||||
|
fmt.Println("PRODUCED:")
|
||||||
|
fmt.Println(producedContent)
|
||||||
|
fmt.Println("=======================")
|
||||||
|
if testcontent != producedContent {
|
||||||
|
t.Errorf("Files don't match!")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getTestFileContent(filename string) string {
|
||||||
|
testcontent, err := ioutil.ReadFile(filename)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
return string(testcontent)
|
||||||
|
}
|
3
go.mod
Normal file
3
go.mod
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
module jakoubek.net/feragstring
|
||||||
|
|
||||||
|
go 1.14
|
151
product_reference.go
Normal file
151
product_reference.go
Normal file
|
@ -0,0 +1,151 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type ProductReference struct {
|
||||||
|
FeragMessage
|
||||||
|
productReferenceNumber int
|
||||||
|
productName string
|
||||||
|
productUsageType int
|
||||||
|
sheetLayers int
|
||||||
|
copiesAssigned int
|
||||||
|
productWeight int
|
||||||
|
supervision int
|
||||||
|
overlap int
|
||||||
|
feedingMode int
|
||||||
|
scatter int
|
||||||
|
missingParameter MissingParameter
|
||||||
|
issueReference string
|
||||||
|
}
|
||||||
|
|
||||||
|
type MissingParameter struct {
|
||||||
|
missingRate int
|
||||||
|
missingSize int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) IssueReference() string {
|
||||||
|
return fmt.Sprintf("+99195%-8s", pr.issueReference)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetIssueReference(issueReference string) {
|
||||||
|
pr.issueReference = issueReference
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) MissingParameter() string {
|
||||||
|
return fmt.Sprintf("+99105%04d%08d", pr.missingParameter.missingRate, pr.missingParameter.missingSize)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetMissingParameter(missingParameter MissingParameter) {
|
||||||
|
pr.missingParameter = missingParameter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) Scatter() string {
|
||||||
|
return fmt.Sprintf("+99102%06d", pr.scatter)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetScatter(scatter int) {
|
||||||
|
pr.scatter = scatter
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) FeedingMode() string {
|
||||||
|
return fmt.Sprintf("+99101%02d", pr.feedingMode)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetFeedingMode(feedingMode int) {
|
||||||
|
pr.feedingMode = feedingMode
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) Overlap() string {
|
||||||
|
return fmt.Sprintf("+45%02d", pr.overlap)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetOverlap(overlap int) {
|
||||||
|
pr.overlap = overlap
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) Supervision() string {
|
||||||
|
return fmt.Sprintf("+44%02d", pr.supervision)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetSupervision(supervision int) {
|
||||||
|
pr.supervision = supervision
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) ProductWeight() string {
|
||||||
|
return fmt.Sprintf("+36%05d", pr.productWeight)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetProductWeight(productWeight int) {
|
||||||
|
pr.productWeight = productWeight
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) CopiesAssigned() string {
|
||||||
|
return fmt.Sprintf("+02%08d", pr.copiesAssigned)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetCopiesAssigned(copiesAssigned int) {
|
||||||
|
pr.copiesAssigned = copiesAssigned
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SheetLayers() string {
|
||||||
|
return fmt.Sprintf("+35%04d", pr.sheetLayers)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetSheetLayers(sheetLayers int) {
|
||||||
|
pr.sheetLayers = sheetLayers
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) ProductUsageType() string {
|
||||||
|
return fmt.Sprintf("+55%02d", pr.productUsageType)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetProductUsageType(productUsageType int) {
|
||||||
|
pr.productUsageType = productUsageType
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) ProductName() string {
|
||||||
|
return fmt.Sprintf("+42%-30s", pr.productName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetProductName(productName string) {
|
||||||
|
pr.productName = productName
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) ProductReferenceNumber() string {
|
||||||
|
return fmt.Sprintf("+41%02d", pr.productReferenceNumber)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) SetProductReferenceNumber(productReferenceNumber int) {
|
||||||
|
pr.productReferenceNumber = productReferenceNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewProductReference() *ProductReference {
|
||||||
|
pr := ProductReference{
|
||||||
|
FeragMessage: FeragMessage{"2450", "!"},
|
||||||
|
missingParameter: MissingParameter{
|
||||||
|
missingRate: 0,
|
||||||
|
missingSize: 1,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return &pr
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) Payload() string {
|
||||||
|
data := pr.ProductReferenceNumber()
|
||||||
|
data += pr.ProductName()
|
||||||
|
data += pr.ProductUsageType()
|
||||||
|
data += pr.SheetLayers()
|
||||||
|
data += pr.CopiesAssigned()
|
||||||
|
data += pr.ProductWeight()
|
||||||
|
data += pr.Supervision()
|
||||||
|
data += pr.Overlap()
|
||||||
|
data += pr.FeedingMode()
|
||||||
|
data += pr.MissingParameter()
|
||||||
|
data += pr.IssueReference()
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
func (pr *ProductReference) Message() string {
|
||||||
|
message := pr.FeragMessage.MessageTemplate()
|
||||||
|
return message(&pr.FeragMessage, pr.Payload())
|
||||||
|
}
|
66
route_list.go
Normal file
66
route_list.go
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type RouteListEntry struct {
|
||||||
|
FeragMessage
|
||||||
|
routeName string
|
||||||
|
routeCode int
|
||||||
|
rampNumber int
|
||||||
|
copiesInRoute int
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) CopiesInRoute() string {
|
||||||
|
return fmt.Sprintf("+23%06d", r.copiesInRoute)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) SetCopiesInRoute(copiesInRoute int) {
|
||||||
|
r.copiesInRoute = copiesInRoute
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) RampNumber() string {
|
||||||
|
return fmt.Sprintf("+25%02d", r.rampNumber)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) SetRampNumber(rampNumber int) {
|
||||||
|
r.rampNumber = rampNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) RouteCode() string {
|
||||||
|
return fmt.Sprintf("+79%05d", r.routeCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) SetRouteCode(routeCode int) {
|
||||||
|
r.routeCode = routeCode
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) RouteName() string {
|
||||||
|
return fmt.Sprintf("+11%-13s", r.routeName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (r *RouteListEntry) SetRouteName(routeName string) {
|
||||||
|
r.routeName = routeName
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewRouteListEntry() *RouteListEntry {
|
||||||
|
rl := RouteListEntry{
|
||||||
|
FeragMessage: FeragMessage{
|
||||||
|
messageStart: "2401",
|
||||||
|
messageEnd: "!",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return &rl
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rl *RouteListEntry) Payload() string {
|
||||||
|
data := rl.RouteName()
|
||||||
|
data += rl.RouteCode()
|
||||||
|
data += rl.RampNumber()
|
||||||
|
data += rl.CopiesInRoute()
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
func (rl *RouteListEntry) Message() string {
|
||||||
|
message := rl.FeragMessage.MessageTemplate()
|
||||||
|
return message(&rl.FeragMessage, rl.Payload())
|
||||||
|
}
|
32
title_end.go
Normal file
32
title_end.go
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import "fmt"
|
||||||
|
|
||||||
|
type TitleEnd struct {
|
||||||
|
FeragMessage
|
||||||
|
titleName string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleEnd) PrintObjectName() string {
|
||||||
|
return fmt.Sprintf("+40%-8s", ti.titleName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleEnd) SetTitleName(titleName string) {
|
||||||
|
ti.titleName = titleName
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTitleEnd() *TitleEnd {
|
||||||
|
t := TitleEnd{
|
||||||
|
FeragMessage: FeragMessage{
|
||||||
|
messageStart: "2441",
|
||||||
|
messageEnd: "!",
|
||||||
|
},
|
||||||
|
}
|
||||||
|
return &t
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleEnd) Message() string {
|
||||||
|
message := ti.FeragMessage.MessageTemplate()
|
||||||
|
payload := fmt.Sprintf("+40%-8s", ti.titleName)
|
||||||
|
return message(&ti.FeragMessage, payload)
|
||||||
|
}
|
92
title_info.go
Normal file
92
title_info.go
Normal file
|
@ -0,0 +1,92 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
|
type TitleInfo struct {
|
||||||
|
FeragMessage
|
||||||
|
printObjectName string
|
||||||
|
titleName string
|
||||||
|
publicationDate time.Time
|
||||||
|
countryCode string
|
||||||
|
printObjectColor string
|
||||||
|
additionalInfo string
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetPrintObjectName(printObjectName string) {
|
||||||
|
ti.printObjectName = printObjectName
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) AdditionalInfo() string {
|
||||||
|
return fmt.Sprintf("+08%-50s", ti.additionalInfo)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetAdditionalInfo(additionalInfo string) {
|
||||||
|
ti.additionalInfo = additionalInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) PrintObjectColor() string {
|
||||||
|
return fmt.Sprintf("+94%-8s", ti.printObjectColor)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetPrintObjectColor(printObjectColor string) {
|
||||||
|
ti.printObjectColor = printObjectColor
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) CountryCode() string {
|
||||||
|
return fmt.Sprintf("+97%-2s", ti.countryCode)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetCountryCode(countryCode string) {
|
||||||
|
ti.countryCode = countryCode
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetPublicationDate(publicationDateString string) {
|
||||||
|
parsedDate, err := time.Parse(dateInputFormatISO, publicationDateString)
|
||||||
|
if err != nil {
|
||||||
|
panic(err)
|
||||||
|
}
|
||||||
|
ti.publicationDate = parsedDate
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) PublicationDate() string {
|
||||||
|
return fmt.Sprintf("+95%-6s", ti.publicationDate.Format(dateOutputFormat))
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
func (ti *TitleInfo) Message() string {
|
||||||
|
message := ti.FeragMessage.MessageTemplate()
|
||||||
|
return message(&ti.FeragMessage, ti.Payload())
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) Payload() string {
|
||||||
|
data := ti.PrintObjectName()
|
||||||
|
data += ti.TitleName()
|
||||||
|
data += ti.PublicationDate()
|
||||||
|
data += ti.CountryCode()
|
||||||
|
data += ti.PrintObjectColor()
|
||||||
|
data += ti.AdditionalInfo()
|
||||||
|
return data
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) PrintObjectName() string {
|
||||||
|
return fmt.Sprintf("+93%-12s", ti.printObjectName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) TitleName() string {
|
||||||
|
return fmt.Sprintf("+40%-8s", ti.titleName)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (ti *TitleInfo) SetTitleName(titleName string) {
|
||||||
|
ti.titleName = titleName
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewTitleInfo() *TitleInfo {
|
||||||
|
t := TitleInfo{
|
||||||
|
FeragMessage: FeragMessage{"2440", "!"},
|
||||||
|
}
|
||||||
|
return &t
|
||||||
|
}
|
||||||
|
|
9
title_info_test.go
Normal file
9
title_info_test.go
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
package feragstring
|
||||||
|
|
||||||
|
import "testing"
|
||||||
|
|
||||||
|
func TestNewTitleInfo(t *testing.T) {
|
||||||
|
ti := NewTitleInfo()
|
||||||
|
ti.titleName = "MOP10629"
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in a new issue