Set<StdArrangementRuleAliasToken> (@NotNull Element element, @NotNull ArrangementSettings defaultSettings) { if (!(defaultSettings instanceof ArrangementExtendableSettings)) { return null; } final Element tokensRoot = element.getChild(TOKENS_ELEMENT_NAME); if (tokensRoot == null) { return ((ArrangementExtendableSettings)myDefaultSettings).getRuleAliases(); } final Set<StdArrangementRuleAliasToken> tokenDefinitions = new HashSet<>(); final List<Element> tokens = tokensRoot.getChildren(TOKEN_ELEMENT_NAME); for (Element token : tokens) { final Attribute id = token.getAttribute(TOKEN_ID); final Attribute name = token.getAttribute(TOKEN_NAME); assert id != null && name != null : "Can not find id for token: " + token; final Element rules = token.getChild(RULES_ELEMENT_NAME); final List<StdArrangementMatchRule> tokenRules = rules == null ? ContainerUtil.emptyList() : deserializeRules(rules, null); tokenDefinitions.add(new StdArrangementRuleAliasToken(id.getValue(), name.getValue(), tokenRules)); } return tokenDefinitions; }