001package org.hl7.fhir.utilities;
002
003/*
004 * #%L
005 * HAPI FHIR - Core Library
006 * %%
007 * Copyright (C) 2014 - 2017 University Health Network
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
024import java.util.Date;
025
026public class TranslatingUtilities {
027
028  public interface TranslationServices {
029    String translate(String context, String value);
030    String translate(String context, String value, Object... args);
031    String toStr(int value);
032    String toStr(Date value);
033  }
034
035  private TranslationServices translator;
036
037  public TranslationServices getTranslator() {
038    return translator;
039  }
040
041  public void setTranslator(TranslationServices translator) {
042    this.translator = translator;
043  }
044  
045  protected String translate(String context, String value) {
046    return hasTranslator() ? translator.translate(context, value) : value;
047  }
048
049  protected String translate(String context, String value, Object... args) {
050    return hasTranslator() ? translator.translate(context, value, args) : String.format(value, args);
051  }
052  
053  protected boolean hasTranslator() {
054    return translator != null;
055  }
056
057  public String toStr(int value) {
058    return hasTranslator() ? translator.toStr(value) : Integer.toString(value);
059  }
060  
061  public String toStr(Date value) {
062    return hasTranslator() ? translator.toStr(value) : value.toString();
063  }
064}