/**
* Copyright (c) 2011 Cloudsmith Inc. and other contributors, as listed below.
* 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:
* Cloudsmith
*
*/
package org.cloudsmith.geppetto.pp.dsl.linking;
import org.eclipse.xtext.naming.IQualifiedNameConverter;
import org.eclipse.xtext.naming.QualifiedName;
/**
* Puppet Qualified Name Converter defines the separator '::'
*
*/
public class PPQualifiedNameConverter extends IQualifiedNameConverter.DefaultImpl {
private static final String separator = "::";
/*
* (non-Javadoc)
*
* @see org.eclipse.xtext.naming.IQualifiedNameConverter.DefaultImpl#getDelimiter()
*/
@Override
public String getDelimiter() {
return separator;
}
/**
* Removes leading '$' before converting to qualified name.
*
* @see org.eclipse.xtext.naming.IQualifiedNameConverter.DefaultImpl#toQualifiedName(java.lang.String)
*/
@Override
public QualifiedName toQualifiedName(String qualifiedNameAsString) {
if(qualifiedNameAsString == null || qualifiedNameAsString.length() < 1 || qualifiedNameAsString.equals("$"))
return QualifiedName.EMPTY;
return super.toQualifiedName(qualifiedNameAsString.startsWith("$")
? qualifiedNameAsString.substring(1)
: qualifiedNameAsString);
}
}