in src/main/java/org/apache/cxf/cwiki/Page.java [545:637]
public void endElement(String uri, String localName, String qName) throws SAXException {
if ("macro".equals(localName) || "structured-macro".equals(localName)) {
switch (state) {
case CHILDREN: {
String pageName = params.get("page");
String depth = params.get("depth");
if (depth == null || "".equals(depth.trim())) {
depth = "1";
}
if (page.childrenOf == null) {
page.childrenOf = new HashMap<String, Integer>();
}
if (pageName == null) {
page.childrenOf.put(page.title, Integer.parseInt(depth));
} else {
page.childrenOf.put(pageName, Integer.parseInt(depth));
}
params.clear();
state = State.NONE;
break;
}
case INCLUDE: {
if (page.includes == null) {
page.includes = new CopyOnWriteArraySet<String>();
}
String inc = params.get("default-parameter");
if (inc == null) {
inc = params.get("title");
}
if (inc == null) {
inc = params.get("");
}
if (inc == null) {
System.out.println(page.title + ": Did not find an include name " + params);
} else {
page.includes.add(inc);
}
state = State.NONE;
break;
}
case BLOG_POSTS:
page.hasBlog = true;
state = State.NONE;
break;
case CODE: {
if (page.codeTypes == null) {
page.codeTypes = new ConcurrentSkipListSet<String>();
}
String lang = null;
for (Map.Entry<String, String> ent : params.entrySet()) {
if ("language".equals(ent.getKey())) {
lang = ent.getValue();
} else if (ent.getKey().contains(":")) {
String parts[] = ent.getKey().split(":");
for (String s : parts) {
if (("title".equals(s) && !params.containsKey("title"))
|| (!params.containsKey("language")
&& ("xml".equals(s) || "java".equals(s)))) {
System.out.println("WARNING Page " + page.title + " has a broken code block");
}
}
} else if ("default-parameter".equals(ent.getKey())) {
String s = ent.getValue();
if ("xml".equals(s) || "java".equals(s)) {
lang = s;
}
}
}
if (lang == null) {
lang = params.get("");
if (!StringUtils.isEmpty(lang)) {
page.codeTypes.add("java");
}
}
//System.out.println("l: " + lang + " " + params);
if (StringUtils.isEmpty(lang)) {
page.codeTypes.add("bash");
lang = "java";
}
page.codeTypes.add(lang);
state = State.NONE;
break;
}
default:
state = State.NONE;
break;
}
} else if ("parameter".equals(localName)) {
paramName = null;
} else if ("default-parameter".equals(localName)) {
paramName = null;
}
}