summaryrefslogtreecommitdiff
path: root/base/src/main/java/bjc/utils/parserutils/pattern/JoinerPatternPart.java
blob: 2f3b16dd68cd9151ca0122413f4574d4be726258 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
package bjc.utils.parserutils.pattern;

import java.util.StringJoiner;

final class JoinerPatternPart implements PatternPart {
	private final PatternPart[] parts;
	private final String joiner;

	JoinerPatternPart(PatternPart[] parts, String joiner) {
		this.parts = parts;
		this.joiner = joiner;
	}

	@Override
	public String toRegex() {
		StringJoiner sj = new StringJoiner(joiner);
		for (PatternPart part : parts) sj.add(part.toRegex());
		return sj.toString();
	}

	@Override
	public boolean canOptimize() {
		for (PatternPart part : parts)
			if (!part.canOptimize()) return false;
		
		return true;
	}
}