teichmann@5831: package org.dive4elements.river.artifacts.model; ingo@1793: ingo@1793: import java.util.ArrayList; ingo@1793: import java.util.List; ingo@1793: ingo@1793: ingo@1793: public class MapserverStyle { ingo@1793: ingo@1793: public static class Clazz { ingo@1876: protected List items; ingo@1876: protected String name; ingo@1876: ingo@1876: public Clazz(String name) { ingo@1876: this.name = name; ingo@1876: this.items = new ArrayList(); ingo@1876: } ingo@1876: ingo@1876: public void addItem(ClazzItem item) { ingo@1876: if (item != null) { ingo@1876: items.add(item); ingo@1876: } ingo@1876: } ingo@1876: ingo@1876: @Override ingo@1876: public String toString() { ingo@1876: StringBuilder sb = new StringBuilder(); ingo@1876: sb.append("CLASS\n"); ingo@1876: sb.append("NAME \"" + name + "\"\n"); ingo@1876: ingo@1876: for (ClazzItem item: items) { ingo@1876: item.toString(sb); ingo@1876: } ingo@1876: ingo@2616: sb.append("END\n"); ingo@1876: ingo@1876: return sb.toString(); ingo@1876: } ingo@1876: } ingo@1876: ingo@1876: public interface ClazzItem { ingo@1876: void toString(StringBuilder sb); ingo@1876: } ingo@1876: ingo@1876: public static class Style implements ClazzItem { ingo@1878: protected String color; ingo@1793: protected String outlinecolor; ingo@1816: protected String symbol; ingo@1793: protected int size; ingo@1793: ingo@1878: public void setColor(String color) { ingo@1878: this.color = color; ingo@1878: } ingo@1878: ingo@1793: public void setOutlineColor(String outlinecolor) { ingo@1793: this.outlinecolor = outlinecolor; ingo@1793: } ingo@1793: ingo@1793: public void setSize(int size) { ingo@1793: this.size = size; ingo@1793: } ingo@1793: ingo@1816: public void setSymbol(String symbol) { ingo@1816: if (symbol != null && symbol.length() > 0) { ingo@1816: this.symbol = symbol; ingo@1816: } ingo@1816: } ingo@1816: ingo@1876: public void toString(StringBuilder sb) { ingo@1793: sb.append("STYLE\n"); ingo@1877: sb.append("WIDTH " + String.valueOf(size) + "\n"); ingo@2616: ingo@2616: if (outlinecolor != null) { ingo@2616: sb.append("OUTLINECOLOR " + outlinecolor + "\n"); ingo@2616: } ingo@1816: ingo@1878: if (color != null) { ingo@1878: sb.append("COLOR " + color + "\n"); ingo@1878: } ingo@1878: ingo@1816: if (symbol != null) { ingo@1816: sb.append("SYMBOL '" + symbol + "'\n"); ingo@1816: } ingo@1816: ingo@1793: sb.append("END\n"); ingo@1876: } ingo@1876: } // end of Style ingo@1793: ingo@1876: public static class Label implements ClazzItem { ingo@1876: protected String color; ingo@1876: protected int size; ingo@1876: ingo@1876: public void setColor(String color) { ingo@1876: this.color = color; ingo@1793: } ingo@1876: ingo@1876: public void setSize(int size) { ingo@1876: this.size = size; ingo@1876: } ingo@1876: ingo@1876: @Override ingo@1876: public void toString(StringBuilder sb) { ingo@1876: sb.append("LABEL\n"); ingo@1876: sb.append("ANGLE auto\n"); ingo@1876: sb.append("SIZE " + String.valueOf(size) + "\n"); ingo@1876: sb.append("COLOR " + color + "\n"); ingo@1876: sb.append("TYPE truetype\n"); ingo@1876: sb.append("FONT DefaultFont\n"); ingo@1876: sb.append("POSITION ur\n"); ingo@1876: sb.append("OFFSET 2 2\n"); ingo@1876: sb.append("END\n"); ingo@1876: } ingo@1876: } ingo@1793: ingo@2616: public static class Expression implements ClazzItem { ingo@2616: protected String value; ingo@2616: ingo@2616: public Expression(String value) { ingo@2616: this.value = value; ingo@2616: } ingo@2616: ingo@2616: @Override ingo@2616: public void toString(StringBuilder sb) { ingo@2616: sb.append("EXPRESSION " + value); ingo@2616: sb.append("\n"); ingo@2616: } ingo@2616: } ingo@2616: ingo@1793: ingo@1793: protected List classes; ingo@1793: ingo@1793: ingo@1793: public MapserverStyle() { ingo@1793: classes = new ArrayList(); ingo@1793: } ingo@1793: ingo@1793: public void addClazz(Clazz clazz) { ingo@1793: if (clazz != null) { ingo@1793: classes.add(clazz); ingo@1793: } ingo@1793: } ingo@1793: ingo@1793: public String toString() { ingo@1793: StringBuilder sb = new StringBuilder(); ingo@1793: ingo@1793: for (Clazz clazz: classes) { ingo@1793: sb.append(clazz.toString()); ingo@1793: } ingo@1793: ingo@1793: return sb.toString(); ingo@1793: } ingo@1793: } ingo@1793: // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :