package tk.eclipse.plugin.csseditor.editors; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Set; public class CSSCompositeValueType extends CSSValueType { private List<CSSValueType> _valueTypes; public CSSCompositeValueType(CSSValueType... valueTypes) { _valueTypes = new LinkedList<CSSValueType>(); for (CSSValueType valueType : valueTypes) { _valueTypes.add(valueType); } } public List<CSSValueType> getValueTypes() { return _valueTypes; } @Override public void fillInProposals(String token, Set<String> proposals) { int lastSpaceIndex = token.lastIndexOf(' '); String start; String lastToken; if (lastSpaceIndex == -1) { start = ""; lastToken = token; } else { start = token.substring(0, lastSpaceIndex + 1); lastToken = token.substring(lastSpaceIndex + 1); } String[] tokens = token.split("\\s+"); int tokenCount = tokens.length; if (tokenCount < _valueTypes.size()) { Set<String> partialProposals = new HashSet<String>(); _valueTypes.get(tokenCount).fillInProposals(lastToken, partialProposals); for (String partialProposal : partialProposals) { proposals.add(start + partialProposal); } } } }