Skip to content

Commit ad91971

Browse files
authored
Refactor (#68)
refactor parser
1 parent 0372233 commit ad91971

File tree

2 files changed

+16
-11
lines changed

2 files changed

+16
-11
lines changed

.github/badges/branches.svg

Lines changed: 1 addition & 1 deletion
Loading

src/main/kotlin/org/xpathqs/core/reflection/SelectorParser.kt

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import org.xpathqs.core.selector.Block
2626
import org.xpathqs.core.selector.NullSelector
2727
import org.xpathqs.core.selector.base.BaseSelector
2828
import org.xpathqs.core.selector.base.ISelector
29+
import org.xpathqs.core.selector.group.GroupSelector
2930

3031
/**
3132
* Class for initializing Selectors names and structure via Reflection
@@ -45,21 +46,13 @@ internal class SelectorParser(
4546
*/
4647
fun parse() {
4748
val baseName = if (base.name.isNotEmpty()) base.name + "." else ""
48-
49-
rootObj.setBase(base)
50-
rootObj.setName(baseName + rootObj::class.simpleName!!)
51-
rootObj.setAnnotations(rootObj::class.annotations.toList())
52-
rootObj.freeze()
53-
49+
setFields(rootObj, base, baseName + rootObj::class.simpleName!!, rootObj::class.annotations)
5450
rootObj.children = srf.innerSelectors
5551

5652
srf.innerSelectorFields.forEach {
5753
it.isAccessible = true
5854
val sel = it.get(rootObj) as BaseSelector
59-
sel.setBase(rootObj)
60-
sel.setName(rootObj.name + "." + it.name)
61-
sel.setAnnotations(it.annotations.toList())
62-
sel.freeze()
55+
setFields(sel, rootObj, rootObj.name + "." + it.name, it.annotations.toList())
6356

6457
if (sel is Block) {
6558
SelectorParser(sel, rootObj).parse()
@@ -70,4 +63,16 @@ internal class SelectorParser(
7063
SelectorParser(it, rootObj).parse()
7164
}
7265
}
66+
67+
private fun setFields(to: BaseSelector, base: ISelector, name: String, annotations: Collection<Annotation>) {
68+
to.setBase(base)
69+
to.setName(name)
70+
to.setAnnotations(annotations)
71+
72+
if(to is GroupSelector) {
73+
to.freeze()
74+
} else {
75+
to.freeze()
76+
}
77+
}
7378
}

0 commit comments

Comments
 (0)