package com.buschmais.xo.impl.proxy.common;
import com.buschmais.xo.api.proxy.ProxyMethod;
import com.buschmais.xo.spi.metadata.method.UnsupportedOperationMethodMetadata;
import java.lang.reflect.Method;
public class UnsupportedOperationMethod<DatastoreType> implements ProxyMethod<DatastoreType> {
private final UnsupportedOperationMethodMetadata<?> methodMetadata;
public UnsupportedOperationMethod(UnsupportedOperationMethodMetadata<?> methodMetadata) {
this.methodMetadata = methodMetadata;
}
@Override
public Object invoke(DatastoreType datastoreType, Object instance, Object[] args) {
Method method = methodMetadata.getAnnotatedMethod().getAnnotatedElement();
throw new UnsupportedOperationException("Method '" + method.getName() + "' declared in '" + method.getDeclaringClass().getName() + "' is not mapped to an implementation.");
}
}