package com.opendoorlogistics.core.scripts.execution.adapters.vls; import com.opendoorlogistics.api.tables.ODLColumnType; import com.opendoorlogistics.api.tables.beans.annotations.ODLColumnOrder; import com.opendoorlogistics.api.tables.beans.annotations.ODLIgnore; import com.opendoorlogistics.api.tables.beans.annotations.ODLNullAllowed; import com.opendoorlogistics.api.tables.beans.annotations.ODLTableName; import com.opendoorlogistics.core.gis.map.data.DrawableObjectImpl; import com.opendoorlogistics.core.gis.map.data.UserRenderFlags; import com.opendoorlogistics.core.tables.beans.BeanMappedRowImpl; @ODLTableName(Style.TABLE_NAME) public class Style extends BeanMappedRowImpl { private static final int COL_LAYERID=0; private static final int COL_KEY1=COL_LAYERID+1; private static final int COL_KEY2=COL_KEY1+1; private static final int COL_KEY3=COL_KEY2+1; private static final int COL_KEY4=COL_KEY3+1; private static final int COL_FILTER=COL_KEY4+1; private static final int COL_COLOUR=COL_FILTER+1; private static final int COL_WIDTH =COL_COLOUR+1; private static final int COL_SYMBOL=COL_WIDTH +1; private static final int COL_OUTLINED=COL_SYMBOL+1; private static final int COL_OPAQUE=COL_OUTLINED+1; private static final int COL_LABEL=COL_OPAQUE+1; private static final int COL_LABELALWAYSVISIBLE=COL_LABEL+1; private static final int COL_LABELCOLOUR=COL_LABELALWAYSVISIBLE+1; private static final int COL_LABELPOSITION =COL_LABELCOLOUR+1; private static final int COL_LABELPRIORITY =COL_LABELPOSITION+1; private static final int COL_LABELSIZE=COL_LABELPRIORITY +1; private static final int COL_LEGENDKEY=COL_LABELSIZE+1; private static final int COL_DESCRIPTION=COL_LEGENDKEY+1; public static final int NB_RULE_KEYS=4; public static final String TABLE_NAME = "Styles"; private String layerId; private String key1; private String key2; private String key3; private String key4; private String filter; private String colour; private String width; // filter width zero?? private String symbol; private String outlined; private String opaque; private String label; private String labelAlwaysVisible; private String labelColour; private String labelPosition; private String labelPriority; private String labelSize; private String legendKey; private String description; public enum OutputFormula{ COLOUR(DrawableObjectImpl.COL_COLOUR, ODLColumnType.COLOUR), WIDTH(DrawableObjectImpl.COL_PIXEL_WIDTH,ODLColumnType.LONG), SYMBOL(DrawableObjectImpl.COL_SYMBOL,ODLColumnType.STRING), OUTLINED(DrawableObjectImpl.COL_OUTLINE,ODLColumnType.LONG), OPAQUE(DrawableObjectImpl.COL_OPAQUE,ODLColumnType.DOUBLE), LABEL(DrawableObjectImpl.COL_LABEL,ODLColumnType.STRING), LABELALWAYSVISIBLE(DrawableObjectImpl.COL_FLAGS,ODLColumnType.LONG, UserRenderFlags.ALWAYS_SHOW_LABEL), LABELCOLOUR(DrawableObjectImpl.COL_LABEL_COLOUR,ODLColumnType.COLOUR), LABELPOSITION(DrawableObjectImpl.COL_LPO,ODLColumnType.STRING), LABELPRIORITY(DrawableObjectImpl.COL_LABEL_PRIORITY,ODLColumnType.LONG), LABELSIZE(DrawableObjectImpl.COL_FONT_SIZE,ODLColumnType.LONG), LEGENDKEY(DrawableObjectImpl.COL_LEGEND_KEY,ODLColumnType.STRING); final int drawablesColumn; final ODLColumnType outputType; final long booleanToFlag; private OutputFormula(int drawablesColumn, ODLColumnType outputType) { this(drawablesColumn, outputType,-1); } private OutputFormula(int drawablesColumn, ODLColumnType outputType, long mappedToFlag) { this.drawablesColumn = drawablesColumn; this.outputType = outputType; this.booleanToFlag = mappedToFlag; } } public String getRuleKey(int indx){ if(indx<0 || indx>=NB_RULE_KEYS){ throw new IllegalArgumentException(); } switch (indx) { case 0: return key1; case 1: return key2; case 2: return key3; case 3: return key4; } return null; } @ODLIgnore public String getFormula(OutputFormula type){ switch(type){ case COLOUR: return getColour(); case WIDTH: return getWidth(); case SYMBOL: return getSymbol(); case OUTLINED: return getOutlined(); case OPAQUE: return getOpaque(); case LABELALWAYSVISIBLE: return getLabelAlwaysVisible(); case LABELCOLOUR: return getLabelColour(); case LABEL: return getLabel(); case LABELPOSITION: return getLabelPosition(); case LABELPRIORITY: return getLabelPriority(); case LABELSIZE: return getLabelSize(); case LEGENDKEY: return getLegendKey(); default: throw new IllegalArgumentException(); } } public String getLayerId() { return layerId; } @ODLColumnOrder(COL_LAYERID) public void setLayerId(String layerId) { this.layerId = layerId; } public String getKey1() { return key1; } @ODLColumnOrder(COL_KEY1) @ODLNullAllowed public void setKey1(String key1) { this.key1 = key1; } public String getKey2() { return key2; } @ODLColumnOrder(COL_KEY2) @ODLNullAllowed public void setKey2(String key2) { this.key2 = key2; } public String getKey3() { return key3; } @ODLColumnOrder(COL_KEY3) @ODLNullAllowed public void setKey3(String key3) { this.key3 = key3; } public String getKey4() { return key4; } @ODLColumnOrder(COL_KEY4) @ODLNullAllowed public void setKey4(String key4) { this.key4 = key4; } public String getColour() { return colour; } @ODLColumnOrder(COL_COLOUR) @ODLNullAllowed public void setColour(String colour) { this.colour = colour; } public String getWidth() { return width; } @ODLColumnOrder(COL_WIDTH) @ODLNullAllowed public void setWidth(String width) { this.width = width; } public String getSymbol() { return symbol; } @ODLColumnOrder(COL_SYMBOL) @ODLNullAllowed public void setSymbol(String symbol) { this.symbol = symbol; } public String getOutlined() { return outlined; } @ODLColumnOrder(COL_OUTLINED) @ODLNullAllowed public void setOutlined(String outlined) { this.outlined = outlined; } public String getOpaque() { return opaque; } @ODLColumnOrder(COL_OPAQUE) @ODLNullAllowed public void setOpaque(String opaque) { this.opaque = opaque; } public String getLabelColour() { return labelColour; } @ODLColumnOrder(COL_LABELCOLOUR) @ODLNullAllowed public void setLabelColour(String labelColour) { this.labelColour = labelColour; } public String getLabel() { return label; } @ODLColumnOrder(COL_LABEL) @ODLNullAllowed public void setLabel(String label) { this.label = label; } public String getLabelSize() { return labelSize; } @ODLColumnOrder(COL_LABELSIZE) @ODLNullAllowed public void setLabelSize(String labelSize) { this.labelSize = labelSize; } public String getLabelAlwaysVisible() { return labelAlwaysVisible; } @ODLColumnOrder(COL_LABELALWAYSVISIBLE) @ODLNullAllowed public void setLabelAlwaysVisible(String labelAlwaysVisible) { this.labelAlwaysVisible = labelAlwaysVisible; } public String getLabelPosition() { return labelPosition; } @ODLColumnOrder(COL_LABELPOSITION) @ODLNullAllowed public void setLabelPosition(String labelPosition) { this.labelPosition = labelPosition; } public String getLegendKey() { return legendKey; } @ODLColumnOrder(COL_LEGENDKEY) @ODLNullAllowed public void setLegendKey(String legendKey) { this.legendKey = legendKey; } public String getLabelPriority() { return labelPriority; } @ODLColumnOrder(COL_LABELPRIORITY) @ODLNullAllowed public void setLabelPriority(String labelPriority) { this.labelPriority = labelPriority; } public String getFilter() { return filter; } @ODLColumnOrder(COL_FILTER) @ODLNullAllowed public void setFilter(String filter) { this.filter = filter; } public String getDescription() { return description; } @ODLColumnOrder(COL_DESCRIPTION) @ODLNullAllowed public void setDescription(String description) { this.description = description; } }