AbstractPropertyAliasesScanner.java
/*
* Copyright (C) 2009 Steve Rowe <sarowe@gmail.com>
* Copyright (C) 2020 Google, LLC.
*
* SPDX-License-Identifier: BSD-3-Clause
*/
package de.jflex.ucd_generator.scanner;
import de.jflex.ucd_generator.ucd.PropertyNames;
import de.jflex.ucd_generator.ucd.UnicodeData;
import java.util.HashSet;
import java.util.Set;
/** Scanner for {@code PropertyAliases(-X.X.X).txt}. */
abstract class AbstractPropertyAliasesScanner {
final Set<String> aliases = new HashSet<>();
final UnicodeData unicodeData;
String longName;
public AbstractPropertyAliasesScanner(UnicodeData unicodeData) {
this.unicodeData = unicodeData;
}
void addPropertyAliases() {
String normalizedLongName = PropertyNames.normalize(longName);
// Long names should resolve to themselves
aliases.add(normalizedLongName);
for (String alias : aliases) {
unicodeData.addPropertyAlias(PropertyNames.normalize(alias), normalizedLongName);
}
clear();
}
protected void clear() {
longName = null;
aliases.clear();
}
}