/**
* <copyright>
* </copyright>
*
*
*/
package org.reuseware.air.language.abstractsyntax.resource.as.ui;
/**
* A proposal for completing an incomplete document.
*/
public class AsCompletionProposal implements java.lang.Comparable<AsCompletionProposal> {
private java.lang.String insertString;
private java.lang.String prefix;
private boolean startsWithPrefix;
private boolean structuralFeature;
private org.eclipse.swt.graphics.Image image;
public AsCompletionProposal(java.lang.String insertString, java.lang.String prefix, boolean startsWithPrefix, boolean structuralFeature, org.eclipse.swt.graphics.Image image) {
this(insertString, prefix, startsWithPrefix, structuralFeature);
this.image = image;
}
public AsCompletionProposal(java.lang.String insertString, java.lang.String prefix, boolean startsWithPrefix, boolean structuralFeature) {
super();
this.insertString = insertString;
this.prefix = prefix;
this.startsWithPrefix = startsWithPrefix;
this.structuralFeature = structuralFeature;
}
public java.lang.String getInsertString() {
return insertString;
}
public java.lang.String getPrefix() {
return prefix;
}
public boolean getStartsWithPrefix() {
return startsWithPrefix;
}
public org.eclipse.swt.graphics.Image getImage() {
return image;
}
public boolean isStructuralFeature() {
return structuralFeature;
}
public boolean equals(Object object) {
if (object instanceof AsCompletionProposal) {
AsCompletionProposal other = (AsCompletionProposal) object;
return other.getInsertString().equals(getInsertString());
}
return false;
}
public int hashCode() {
return getInsertString().hashCode();
}
public int compareTo(AsCompletionProposal object) {
if (object instanceof AsCompletionProposal) {
AsCompletionProposal other = (AsCompletionProposal) object;
// proposals that start with the prefix are preferred over the ones that do not
int startCompare = (startsWithPrefix ? 1 : 0) - (other.getStartsWithPrefix() ? 1 : 0);
// if both proposals start with the prefix of both do not the insert string is
// compared
return startCompare == 0 ? getInsertString().compareTo(other.getInsertString()) : -startCompare;
}
return -1;
}
}