blob: afb1321b50ecca995f75d311cdd2587404a0124a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 BSI Business Systems Integration AG.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* BSI Business Systems Integration AG - initial API and implementation
******************************************************************************/
package org.eclipse.scout.sdk.util.type;
import java.beans.PropertyDescriptor;
import org.eclipse.jdt.core.IField;
import org.eclipse.jdt.core.IMember;
import org.eclipse.jdt.core.IMethod;
import org.eclipse.jdt.core.IType;
/**
* Description of a Java bean property. This is a dual class to Java's {@link PropertyDescriptor}.
*/
public interface IPropertyBean {
/**
* @return Returns the declaring type that is hosting this property bean.
*/
IType getDeclaringType();
/**
* @return Returns the property's getter method or <code>null</code> if it is write-only.
*/
IMethod getReadMethod();
/**
* @return Returns the property's setter method or <code>null</code> if it is read-only.
*/
IMethod getWriteMethod();
/**
* Property inspectors try to determine a bean property's field. Since the JavaBeans specification defines bean
* properties by their access methods it is possible, that a property is not based on a field at all. This method
* returns <code>null</code> in such a case.
*
* @return The field this property is based on or <code>null</code> if it can not be determined.
*/
IField getField();
/**
* @return the read, write method and the field if not null.
*/
IMember[] getAllMembers();
/**
* @return Returns the bean's name.
*/
String getBeanName();
String getBeanSignature();
}