int len = pythonAndTemplateProposals.size();
for (int i = 0; i < len; i++) {
Object o = pythonAndTemplateProposals.get(i);
if (o instanceof ICompletionProposal) {
ICompletionProposal proposal = (ICompletionProposal) o;
String displayString;
if (proposal instanceof IPyCompletionProposal2) {
IPyCompletionProposal2 pyCompletionProposal = (IPyCompletionProposal2) proposal;
displayString = pyCompletionProposal.getInternalDisplayStringRepresentation();
} else {
displayString = proposal.getDisplayString();
}
if (onlyForCalltips) {
if (displayString.equals(qualifier)) {
addProposal(returnProposals, proposal, displayString);
} else if (displayString.length() > qualifier.length() && displayString.startsWith(qualifier)) {
if (displayString.charAt(qualifier.length()) == '(') {
addProposal(returnProposals, proposal, displayString);
}
}
} else if (displayString.toLowerCase().startsWith(lowerCaseQualifier)) {
List<ICompletionProposal> existing = returnProposals.get(displayString);
if (existing != null) {
//a proposal with the same string is already there...
boolean addIt = true;
if (proposal instanceof PyCompletionProposal) {
PyCompletionProposal propP = (PyCompletionProposal) proposal;
OUT: for (Iterator<ICompletionProposal> it = existing.iterator(); it.hasNext();) {
ICompletionProposal curr = it.next();
int overrideBehavior = propP.getOverrideBehavior(curr);
switch (overrideBehavior) {
case PyCompletionProposal.BEHAVIOR_COEXISTS:
//just go on (it will be added later)