1 /* 2 * (c) Copyright 2006-2020 by rapiddweller GmbH & Volker Bergmann. All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, is permitted under the terms of the 6 * GNU General Public License. 7 * 8 * For redistributing this software or a derivative work under a license other 9 * than the GPL-compatible Free Software License as defined by the Free 10 * Software Foundation or approved by OSI, you must first obtain a commercial 11 * license to this software product from rapiddweller GmbH & Volker Bergmann. 12 * 13 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 14 * WITHOUT A WARRANTY OF ANY KIND. ALL EXPRESS OR IMPLIED CONDITIONS, 15 * REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF 16 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE 17 * HEREBY EXCLUDED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 18 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 19 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 20 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 21 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 22 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 23 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 24 * POSSIBILITY OF SUCH DAMAGE. 25 */ 26 27 package com.rapiddweller.benerator.consumer; 28 29 import com.rapiddweller.benerator.Consumer; 30 import com.rapiddweller.benerator.wrapper.ProductWrapper; 31 32 33 /** 34 * Abstract implementation of the Consumer interface. 35 * Custom implementations should rather inherit from this class 36 * than implement the Consumer interface directly. 37 * This increases the chance to keep custom consumers compatible 38 * with future versions.<br/><br/> 39 * Created: 25.01.2008 22:37:42 40 * 41 * @author Volker Bergmann 42 * @since 0.4.0 43 */ 44 public abstract class AbstractConsumer implements Consumer { 45 46 @Override 47 public void startConsuming(ProductWrapper<?> wrapper) { 48 startProductConsumption(wrapper.unwrap()); 49 } 50 51 @Override 52 public void finishConsuming(ProductWrapper<?> wrapper) { 53 finishProductConsumption(wrapper.unwrap()); 54 } 55 56 /** 57 * Start product consumption. 58 * 59 * @param object the object 60 */ 61 public abstract void startProductConsumption(Object object); 62 63 /** 64 * Finish product consumption. 65 * 66 * @param object the object 67 */ 68 public void finishProductConsumption(Object object) { 69 } 70 71 @Override 72 public void flush() { 73 } 74 75 @Override 76 public void close() { 77 } 78 79 @Override 80 public String toString() { 81 return getClass().getSimpleName(); 82 } 83 84 }