001package ball.util.ant.types; 002/*- 003 * ########################################################################## 004 * Utilities 005 * %% 006 * Copyright (C) 2008 - 2022 Allen D. Ball 007 * %% 008 * Licensed under the Apache License, Version 2.0 (the "License"); 009 * you may not use this file except in compliance with the License. 010 * You may obtain a copy of the License at 011 * 012 * http://www.apache.org/licenses/LICENSE-2.0 013 * 014 * Unless required by applicable law or agreed to in writing, software 015 * distributed under the License is distributed on an "AS IS" BASIS, 016 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 017 * See the License for the specific language governing permissions and 018 * limitations under the License. 019 * ########################################################################## 020 */ 021import java.beans.ConstructorProperties; 022 023import static org.apache.commons.lang3.StringUtils.EMPTY; 024import static org.apache.commons.lang3.StringUtils.isEmpty; 025 026/** 027 * Class to provide a {@link String} value type for 028 * {@link.uri http://ant.apache.org/ Ant} {@link org.apache.tools.ant.Task} 029 * implementations. 030 * 031 * {@bean.info} 032 * 033 * @author {@link.uri mailto:ball@hcf.dev Allen D. Ball} 034 */ 035public class StringValueType extends OptionalTextType { 036 private String value = null; 037 038 /** 039 * @param value The value. 040 */ 041 @ConstructorProperties({ "value" }) 042 public StringValueType(String value) { 043 this(); 044 045 setValue(value); 046 } 047 048 /** 049 * No-argument constructor. 050 */ 051 public StringValueType() { super(); } 052 053 public String getValue() { return value; } 054 public String setValue(String value) { 055 String previous = this.value; 056 057 this.value = value; 058 059 return previous; 060 } 061 062 @Override 063 public void addText(String text) { 064 setValue((isEmpty(getValue()) ? EMPTY : getValue()) + text); 065 } 066 067 @Override 068 public String toString() { return getValue(); } 069}