@Override
 public boolean hasProperty(String name) {
   return delegate.hasProperty(name);
 }
 @Override
 public boolean isMayImplementMissingMethods() {
   return implementsMissing && delegate.isMayImplementMissingMethods();
 }
 @Override
 public boolean isMayImplementMissingProperties() {
   return implementsMissing && includeProperties && delegate.isMayImplementMissingProperties();
 }
 @Override
 public Object invokeMethod(String name, Object... arguments) throws MissingMethodException {
   return delegate.invokeMethod(name, arguments);
 }
 @Override
 public boolean hasMethod(String name, Object... arguments) {
   return delegate.hasMethod(name, arguments);
 }
 @Override
 public Map<String, ?> getProperties() {
   return delegate.getProperties();
 }
 @Override
 public void setProperty(final String name, Object value) throws MissingPropertyException {
   delegate.setProperty(name, value);
 }
 @Override
 public Object getProperty(String name) throws MissingPropertyException {
   return delegate.getProperty(name);
 }