/*
* Copyright 2013 Guidewire Software, Inc.
*/
package gw.lang.reflect;
public interface IPropertyInfo extends IAttributedFeatureInfo, IIntrinsicTypeReference
{
/**
* @return true if the property is readable given the visibility constraint passed in,
* false otherwise.
*/
public boolean isReadable();
/**
* @return True if the property is writable given the visibility constraint passed in,
* false otherwise.
*/
public boolean isWritable();
/**
* @param whosAskin The type querying the property writability. For example, passing in the type the property is on will
* allow properties that have private access in the setter to be written to. Passing in an unrelated type will only
* allow properties that are public to be written to.
*
* @return True if the property is writable given the visibility constraint passed in,
* false otherwise.
*/
public boolean isWritable( IType whosAskin );
/**
* @return the PropertyAccessor (for getting and setting) this property.
*/
public IPropertyAccessor getAccessor();
public IPresentationInfo getPresentationInfo();
}