176f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti/* 276f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * Copyright (C) 2007-2010 Júlio Vilmar Gesser. 376f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * Copyright (C) 2011, 2013-2016 The JavaParser Team. 476f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * 576f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * This file is part of JavaParser. 676f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * 776f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * JavaParser can be used either under the terms of 876f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * a) the GNU Lesser General Public License as published by 976f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * the Free Software Foundation, either version 3 of the License, or 1076f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * (at your option) any later version. 1176f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * b) the terms of the Apache License 1276f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * 1376f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * You should have received a copy of both licenses in LICENCE.LGPL and 1476f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * LICENCE.APACHE. Please refer to those files for details. 1576f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * 1676f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * JavaParser is distributed in the hope that it will be useful, 1776f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * but WITHOUT ANY WARRANTY; without even the implied warranty of 1876f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1976f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti * GNU Lesser General Public License for more details. 2076f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti */ 2176f5dc9d043237e8ada0e6597d6c8d48b67f6d8fFederico Tomassetti 226c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggenpackage com.github.javaparser.printer; 236c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen 246c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggenimport com.github.javaparser.ast.Node; 256c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen 266c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen/** 276c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen * Pretty printer for AST nodes. 286c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen */ 296c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggenpublic class PrettyPrinter { 306c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen private final PrettyPrinterConfiguration configuration; 316c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen 32912c507882e0ccbc4e7eaabb1ecf6379bd7940c6Federico Tomassetti public PrettyPrinter() { 33912c507882e0ccbc4e7eaabb1ecf6379bd7940c6Federico Tomassetti this(new PrettyPrinterConfiguration()); 34912c507882e0ccbc4e7eaabb1ecf6379bd7940c6Federico Tomassetti } 35912c507882e0ccbc4e7eaabb1ecf6379bd7940c6Federico Tomassetti 366c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen public PrettyPrinter(PrettyPrinterConfiguration configuration) { 376c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen this.configuration = configuration; 386c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen } 396c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen 406c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen public String print(Node node) { 41aa67367007111bde95d710ce1d44d191eddd9c66Danny van Bruggen final PrettyPrintVisitor visitor = configuration.getVisitorFactory().apply(configuration); 426c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen node.accept(visitor, null); 436c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen return visitor.getSource(); 446c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen } 456c7162f0429bf235fc157ca081ceb992409594e0Danny van Bruggen} 46