1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package io.wcm.qa.glnm.selectors;
21
22 import java.util.Collection;
23
24 import org.openqa.selenium.By;
25
26 import com.galenframework.specs.page.Locator;
27
28 import io.wcm.qa.glnm.selectors.base.NestedSelector;
29 import io.wcm.qa.glnm.selectors.base.Selector;
30
31
32
33
34
35
36
37 public class FixedValueNestedSelector extends FixedValueSelector implements NestedSelector {
38
39 private Selector absolute;
40 private Collection<NestedSelector> children;
41 private NestedSelector parent;
42 private Selector relative;
43
44
45
46
47
48
49 public FixedValueNestedSelector(NestedSelector selector) {
50 this(selector.elementName(), selector.asString(), selector.asBy(), selector.asLocator(), selector.asAbsolute(), selector.asRelative(),
51 selector.getParent(), selector.getChildren());
52 }
53
54
55
56
57
58
59
60
61
62
63
64
65
66 public FixedValueNestedSelector(String elementName, String css, By by, Locator locator, Selector absolute,
67 Selector relative, NestedSelector parent, Collection<NestedSelector> children) {
68 super(elementName, css, by, locator);
69 this.absolute = absolute;
70 this.children = children;
71 this.parent = parent;
72 this.relative = relative;
73 }
74
75
76 @Override
77 public Selector asAbsolute() {
78 return absolute;
79 }
80
81
82 @Override
83 public Selector asRelative() {
84 return relative;
85 }
86
87
88 @Override
89 public Collection<NestedSelector> getChildren() {
90 return children;
91 }
92
93
94 @Override
95 public NestedSelector getParent() {
96 return parent;
97 }
98
99
100 @Override
101 public boolean hasChildren() {
102 boolean hasNoChildren = ((children == null) || (children.isEmpty()));
103 return !hasNoChildren;
104 }
105
106
107 @Override
108 public boolean hasParent() {
109 return parent != null;
110 }
111
112 }