package com.crazyphd.cddiff.HTMLBuilder;
import java.util.*;
public class CSSBuilder {
private LinkedList entities;
public CSSBuilder() {
entities = new LinkedList();
}
public CSSBuilder newEntity(String name) {
entities.add(new CSSEntity(name));
return this;
}
public CSSBuilder addProp(String prop, String val) {
entities.getLast().addProp(prop, val);
return this;
}
public String build() {
StringBuilder result = new StringBuilder();
while(entities.size() > 0) {
result.append(entities.pollFirst().build());
}
return result.toString();
}
}
class CSSEntity {
private HashMap characteristics = new HashMap();
private String name;
CSSEntity(String name) {
this.name = name;
}
public void addProp(String prop, String val) {
this.characteristics.put(prop, val);
}
public StringBuilder build() {
StringBuilder out = new StringBuilder();
out.append(name)
.append(" {\n");
for (Map.Entry entry : characteristics.entrySet()) {
out.append("\t")
.append(entry.getKey())
.append(": ")
.append(entry.getValue())
.append(";")
.append("\n");
}
out.append("}\n");
return out;
}
}