java/sql-dk/src/main/java/info/globalcode/sql/dk/formatting/AbstractFormatter.java
branchv_0
changeset 248 7f81cfa150d0
parent 238 4a1864c3e867
child 250 aae5009bd0af
equal deleted inserted replaced
247:3380ae5275be 248:7f81cfa150d0
    39 	private FormatterContext formatterContext;
    39 	private FormatterContext formatterContext;
    40 	private ColumnsHeader currentColumnsHeader;
    40 	private ColumnsHeader currentColumnsHeader;
    41 	private String currentQuery;
    41 	private String currentQuery;
    42 	private int currentColumnsCount;
    42 	private int currentColumnsCount;
    43 	private int currentRowCount;
    43 	private int currentRowCount;
       
    44 	private int resultSetCount;
    44 
    45 
    45 	public AbstractFormatter(FormatterContext formatterContext) {
    46 	public AbstractFormatter(FormatterContext formatterContext) {
    46 		this.formatterContext = formatterContext;
    47 		this.formatterContext = formatterContext;
    47 		state.push(State.ROOT);
    48 		state.push(State.ROOT);
       
    49 	}
       
    50 
       
    51 	protected String getCurrentRelationName() {
       
    52 		if (getFormatterContext().getRelationNames() == null || getFormatterContext().getRelationNames().size() < resultSetCount) {
       
    53 			return "r" + resultSetCount;
       
    54 		} else {
       
    55 			return getFormatterContext().getRelationNames().get(resultSetCount - 1);
       
    56 		}
    48 	}
    57 	}
    49 
    58 
    50 	/*
    59 	/*
    51 	 * root
    60 	 * root
    52 	 * .batch
    61 	 * .batch
   124 	}
   133 	}
   125 
   134 
   126 	@Override
   135 	@Override
   127 	public void writeStartBatch() {
   136 	public void writeStartBatch() {
   128 		pushState(State.BATCH, EnumSet.of(State.ROOT));
   137 		pushState(State.BATCH, EnumSet.of(State.ROOT));
       
   138 		resultSetCount = 0;
   129 	}
   139 	}
   130 
   140 
   131 	@Override
   141 	@Override
   132 	public void writeEndBatch() {
   142 	public void writeEndBatch() {
   133 		popState(EnumSet.of(State.ROOT));
   143 		popState(EnumSet.of(State.ROOT));
   154 	}
   164 	}
   155 
   165 
   156 	@Override
   166 	@Override
   157 	public void writeStartResultSet(ColumnsHeader header) {
   167 	public void writeStartResultSet(ColumnsHeader header) {
   158 		pushState(State.RESULT_SET, EnumSet.of(State.STATEMENT));
   168 		pushState(State.RESULT_SET, EnumSet.of(State.STATEMENT));
       
   169 		resultSetCount++;
   159 		currentRowCount = 0;
   170 		currentRowCount = 0;
   160 		currentColumnsHeader = header;
   171 		currentColumnsHeader = header;
   161 	}
   172 	}
   162 
   173 
   163 	@Override
   174 	@Override