...
1 package resourcename
2
3
4
5 func HasParent(name, parent string) bool {
6 if name == "" || parent == "" || name == parent {
7 return false
8 }
9 var parentScanner, nameScanner Scanner
10 parentScanner.Init(parent)
11 nameScanner.Init(name)
12 for parentScanner.Scan() {
13 if !nameScanner.Scan() {
14 return false
15 }
16 if parentScanner.Segment().IsWildcard() {
17 continue
18 }
19
20 if nameScanner.Segment().Literal().HasRevision() &&
21 !parentScanner.Segment().Literal().HasRevision() &&
22 (nameScanner.Segment().Literal().ResourceID() == parentScanner.Segment().Literal().ResourceID()) {
23 continue
24 }
25 if parentScanner.Segment() != nameScanner.Segment() {
26 return false
27 }
28 }
29 if parentScanner.Full() && nameScanner.Full() {
30 return parentScanner.ServiceName() == nameScanner.ServiceName()
31 }
32 return true
33 }
34
View as plain text