/*******************************************************************************
* Copyright (c) 2010 Martin Schnabel <mb0@mb0.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
******************************************************************************/
package org.axdt.avm.ui.naming;
import org.eclipse.xtext.ui.editor.contentassist.PrefixMatcher;
import com.google.inject.Inject;
import com.google.inject.name.Named;
/**
* @author mb0
*/
public class AvmPrefixMatcher extends PrefixMatcher {
public static final String DELEGATE_NAME = "org.axdt.avm.ui.naming.AvmPrefixMatcher$delegate";
@Inject
@Named(DELEGATE_NAME)
private PrefixMatcher delegate;
@Override
public boolean isCandidateMatchingPrefix(String name, String prefix) {
int index;
if ((index = name.lastIndexOf(getSubDelimiter())) > -1)
name = name.substring(index + 1);
else if ((index = name.lastIndexOf(getDelimiter())) > -1)
name = name.substring(index + 1);
return delegate.isCandidateMatchingPrefix(name, prefix);
}
public void setDelegate(PrefixMatcher delegate) {
this.delegate = delegate;
}
public PrefixMatcher getDelegate() {
return delegate;
}
public String getDelimiter() {
return ".";
}
public char getSubDelimiter() {
return '#';
}
}