/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.internal.gosu.parser.java.classinfo;
import gw.lang.Deprecated;
import gw.lang.reflect.IScriptabilityModifier;
import gw.lang.reflect.IType;
import gw.lang.reflect.java.IJavaClassInfo;
import gw.lang.reflect.java.IJavaClassMethod;
import gw.lang.reflect.java.IJavaPropertyDescriptor;
public class JavaSourcePropertyDescriptor implements IJavaPropertyDescriptor {
private String _name;
private IJavaClassInfo _type;
private IJavaClassMethod _readMethod;
private IJavaClassMethod _writeMethod;
public JavaSourcePropertyDescriptor(String propName, IJavaClassInfo type, IJavaClassMethod getter, IJavaClassMethod setter) {
_name = propName;
_type = type;
_readMethod = getter;
_writeMethod = setter;
}
@Override
public String getDisplayName() {
return _name;
}
@Override
public String getName() {
return _name;
}
@Override
public IType getPropertyType() {
return _type.getJavaType();
}
@Override
public IJavaClassInfo getPropertyClassInfo() {
return _type;
}
@Override
public IJavaClassMethod getReadMethod() {
return _readMethod;
}
@Override
public String getShortDescription() {
return _name;
}
@Override
public IJavaClassMethod getWriteMethod() {
return _writeMethod;
}
@Override
public boolean isDeprecated() {
return (_readMethod != null && (_readMethod.isAnnotationPresent(Deprecated.class) || _readMethod.isAnnotationPresent(java.lang.Deprecated.class))) ||
(_writeMethod != null && (_writeMethod.isAnnotationPresent(Deprecated.class) || _writeMethod.isAnnotationPresent(java.lang.Deprecated.class)));
}
@Override
public boolean isHidden() {
return false;
}
@Override
public boolean isHiddenViaFeatureDescriptor() {
return false;
}
@Override
public boolean isVisibleViaFeatureDescriptor(IScriptabilityModifier constraint) {
return true;
}
}