11b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick/* 21b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * Copyright (C) 2010 The Android Open Source Project 31b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * 41b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * Licensed under the Apache License, Version 2.0 (the "License"); 51b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * you may not use this file except in compliance with the License. 61b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * You may obtain a copy of the License at 71b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * 81b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * http://www.apache.org/licenses/LICENSE-2.0 91b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * 101b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * Unless required by applicable law or agreed to in writing, software 111b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * distributed under the License is distributed on an "AS IS" BASIS, 121b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * See the License for the specific language governing permissions and 141b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * limitations under the License. 151b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick */ 161b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick 171b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrickpackage android.util; 181b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick 191b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick/** 201b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * PrefixPrinter is a Printer which prefixes all lines with a given 211b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * prefix. 221b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * 231b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * @hide 241b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick */ 251b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrickpublic class PrefixPrinter implements Printer { 261b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick private final Printer mPrinter; 271b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick private final String mPrefix; 281b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick 291b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick /** 301b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * Creates a new PrefixPrinter. 311b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * 321b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * <p>If prefix is null or empty, the provided printer is returned, rather 331b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick * than making a prefixing printer. 341b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick */ 351b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick public static Printer create(Printer printer, String prefix) { 361b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick if (prefix == null || prefix.equals("")) { 371b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick return printer; 381b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick } 391b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick return new PrefixPrinter(printer, prefix); 401b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick } 411b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick 421b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick private PrefixPrinter(Printer printer, String prefix) { 431b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick mPrinter = printer; 441b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick mPrefix = prefix; 451b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick } 461b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick 471b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick public void println(String str) { 481b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick mPrinter.println(mPrefix + str); 491b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick } 501b29825cca9edda7ae4b3a3f27420c42fd13eef8Brad Fitzpatrick} 51