/* * #! * Ontopia Navigator * #- * Copyright (C) 2001 - 2013 The Ontopia Project * #- * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * !# */ package net.ontopia.topicmaps.nav2.impl.basic; import net.ontopia.topicmaps.core.TopicNameIF; import net.ontopia.topicmaps.core.VariantNameIF; import net.ontopia.utils.StringifierIF; /** * INTERNAL: Stringifier that stringifies TopicNameIFs and VariantNameIFs * by calling their getValue() method. In addition it can be specified * which strings to use for the different fail-situations: * <ul> * <li>the object is null (no base name/variant name existent)</li> * <li>the value is null (null base name/variant name)</li> * <li>the value is empty (empty string base name/variant name)</li> * </ul> */ public class CustomNameStringifier implements StringifierIF { // define fallback values protected String stringNonExistent = "[No name]"; protected String stringValueNull = "[Null name]"; protected String stringValueEmpty = "[Empty name]"; /** * INTERNAL: Stringifies the given name. * * @param name object, cast to TopicNameIF or VariantNameIF * internally; the given name * @return string containing name value or "[No name]" */ public String toString(Object name) { String stringName = null; if (name == null) return stringNonExistent; if (name instanceof TopicNameIF) stringName = ((TopicNameIF) name).getValue(); else stringName = ((VariantNameIF) name).getValue(); if (stringName == null) stringName = stringValueNull; else if (stringName.equals("")) stringName = stringValueEmpty; return stringName; } public void setStringNonExistent(String stringNonExistent) { this.stringNonExistent = stringNonExistent; } public String getStringNonExistent() { return stringNonExistent; } public void setStringValueNull(String stringValueNull) { this.stringValueNull = stringValueNull; } public String getStringValueNull() { return stringValueNull; } public void setStringValueEmpty(String stringValueEmpty) { this.stringValueEmpty = stringValueEmpty; } public String getStringValueEmpty() { return stringValueEmpty; } }