すべての要素に使用されるいくつかの属性を持つ HashSet を使用してから、この Hashset を各要素に対応する HashMap に追加しています。さらに、特定の要素 (例 THEAD ) に追加される属性はほとんどありません。
ただし、後で追加された属性alignは、Table と THEAD の両方に存在します。以下のコードに何か問題がありますか。
private static HashMap<String, Set<String>> ELEMENT_ATTRIBUTE_MAP =
new HashMap<String, Set<String>>();
HashSet<String> tableSet =
new HashSet<String>(Arrays.asList(new String[]
{HTMLAttributeName.style.toString(),
HTMLAttributeName.color.toString(),
HTMLAttributeName.dir.toString(),
HTMLAttributeName.bgColor.toString()}));
ELEMENT_ATTRIBUTE_MAP.put(HTMLElementName.TABLE, new HashSet<String>(tableSet));
// Add align only for Head
tableSet.add(HTMLAttributeName.align.toString());
ELEMENT_ATTRIBUTE_MAP.put(HTMLElementName.THEAD, tableSet);