1 /** 2 * Copyright (c) 2012, University of Konstanz, Distributed Systems Group 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions are met: 7 * * Redistributions of source code must retain the above copyright 8 * notice, this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright 10 * notice, this list of conditions and the following disclaimer in the 11 * documentation and/or other materials provided with the distribution. 12 * * Neither the name of the University of Konstanz nor the 13 * names of its contributors may be used to endorse or promote products 14 * derived from this software without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND 17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 19 * DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY 20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 26 */ 27 package org.perfidix.ouput.asciitable; 28 29 /** 30 * A dynamic, extensible line. Good as a row delemiter. 31 * 32 * @author Alexander Onea, neue Couch 33 */ 34 public final class DynamicLine extends AbstractTabularComponent { 35 36 /** Content for this dynamic line. */ 37 private transient final char content; 38 39 /** 40 * Constructor. 41 * 42 * @param theContent 43 * where the row should be filled with. 44 * @param theTable 45 * the table to be drawn to. 46 */ 47 public DynamicLine(final char theContent, final NiceTable theTable) { 48 super(theTable); 49 this.content = theContent; 50 } 51 52 /** 53 * {@inheritDoc} 54 */ 55 @Override 56 public String draw() { 57 return Util.combine(new String(new char[] { 58 AbstractTabularComponent.BORDER 59 }), Util.repeat(new String(new char[] { 60 content 61 }), getTable().getTotalWidth() - 2), new String(new char[] { 62 AbstractTabularComponent.BORDER 63 }), NEWLINE); 64 65 } 66 67 }