package org.tynamo.descriptor;
import java.lang.reflect.Method;
public class TynamoMethodDescriptorImpl extends TynamoDescriptor implements IMethodDescriptor
{
private String name;
private Class returnType;
private Class[] argumentTypes;
public TynamoMethodDescriptorImpl(IMethodDescriptor methodDescriptor)
{
super(methodDescriptor);
}
public TynamoMethodDescriptorImpl(Class beanType, String name, Class returnType, Class[] argumentTypes)
{
super(beanType);
this.returnType = returnType;
this.name = name;
this.argumentTypes = argumentTypes;
setNonVisual(true);
}
/**
* (non-Javadoc)
*
* @see org.tynamo.descriptor.IMethodDescriptor#getArgumentTypes()
*/
public Class[] getArgumentTypes()
{
return argumentTypes;
}
/**
* just for serialization pourposes
*/
public void setArgumentTypes(Class[] argumentTypes)
{
this.argumentTypes = argumentTypes;
}
/**
* (non-Javadoc)
*
* @see org.tynamo.descriptor.IMethodDescriptor#getName()
*/
public String getName()
{
return name;
}
/**
* just for serialization pourposes
*/
public void setName(String name)
{
this.name = name;
}
public Class getReturnType()
{
return returnType;
}
/**
* just for serialization pourposes
*/
public void setReturnType(Class returnType)
{
this.returnType = returnType;
}
public Method getMethod()
{
try
{
return beanType.getMethod(name, argumentTypes);
} catch (NoSuchMethodException e)
{
return null;
}
}
@Override
public Object clone()
{
return new TynamoMethodDescriptorImpl(this);
}
}