001package org.hl7.fhir.utilities;
002
003/*-
004 * #%L
005 * org.hl7.fhir.utilities
006 * %%
007 * Copyright (C) 2014 - 2019 Health Level 7
008 * %%
009 * Licensed under the Apache License, Version 2.0 (the "License");
010 * you may not use this file except in compliance with the License.
011 * You may obtain a copy of the License at
012 * 
013 *      http://www.apache.org/licenses/LICENSE-2.0
014 * 
015 * Unless required by applicable law or agreed to in writing, software
016 * distributed under the License is distributed on an "AS IS" BASIS,
017 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
018 * See the License for the specific language governing permissions and
019 * limitations under the License.
020 * #L%
021 */
022
023
024/**
025 * Encapsulates StringBuilder to build strings of values separated by comma
026 * @author Ewout
027 */
028
029public class CommaSeparatedStringBuilder {
030
031  boolean first = true;
032  String sep = ", ";
033  StringBuilder b = new StringBuilder();
034  int count = 0;
035
036  public CommaSeparatedStringBuilder() {
037  }
038  
039  public CommaSeparatedStringBuilder(String sep) {
040    this.sep = sep;
041  }
042
043  public void append(String value) {
044    if (!first)
045      b.append(sep);
046    b.append(value);
047    first = false;
048    count++;    
049  }
050  
051  public int length() {
052    return b.length();
053  }
054  
055  public int count() {
056    return count;
057  }
058
059  @Override
060  public String toString() {
061    return b.toString();
062  }
063
064  public void appendIfNotNull(String s) {
065   if (!Utilities.noString(s))
066     append(s);
067    
068  }
069}