/*
* Copyright (c) 2006 Eclipse.org
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* Dmitry Stadnik - initial API and implementation
*/
package org.eclipse.gmf.internal.common;
import java.util.Collection;
/**
* Base names dispenser implementation.
*
* @author dstadnik
*/
public abstract class AbstractNamesDispenser implements NamesDispenser {
protected abstract Collection<String> getNamesPool();
protected static String composeName(String prefixPart, String semanticPart, String suffixPart) {
String s = suffixPart == null ? semanticPart : semanticPart + suffixPart;
return prefixPart == null ? s : prefixPart + s;
}
public boolean contains(String name) {
return getNamesPool().contains(name);
}
public final String get(String semanticPart, String suffixPart) {
return get(null, semanticPart, suffixPart);
}
public final String get(String semanticPart) {
return get(null, semanticPart, null);
}
public boolean add(String name) {
return getNamesPool().add(name);
}
public void clear() {
getNamesPool().clear();
}
}