package at.bestsolution.efxclipse.tooling.model.internal;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jdt.core.Signature;
import at.bestsolution.efxclipse.tooling.model.IFXEnumProperty;
public class FXEnumProperty extends FXProperty implements IFXEnumProperty {
private String enumTypeAsString;
private IType enumType;
public FXEnumProperty(FXClass fxClass, String name, IJavaElement javaElement, String erasedFQNType, boolean isStatic) {
super(fxClass, name, javaElement, isStatic);
this.enumTypeAsString = erasedFQNType;
}
public static boolean isEnum(IJavaProject jp, String erasedFQNType) throws JavaModelException {
return jp.findType(erasedFQNType).isEnum();
}
@Override
public String toString() {
return "FXEnumProperty("+getName()+")";
}
@Override
public String getEnumTypeAsString(boolean fqn) {
return fqn ? enumTypeAsString : Signature.getSimpleName(enumTypeAsString);
}
@Override
public IType getEnumType() {
if( enumType == null ) {
try {
enumType = getFXClass().getJavaProject().findType(enumTypeAsString);
} catch (JavaModelException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return enumType;
}
}