blob: bee474b08812b11a76f07941d7996aca25623e31 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.cassandra.distributed.impl;
import java.io.Serializable;
import java.net.InetSocketAddress;
import java.util.UUID;
import java.util.concurrent.Future;
import java.util.function.BiConsumer;
import java.util.function.BiFunction;
import java.util.function.Consumer;
import java.util.function.Function;
import org.apache.cassandra.distributed.api.ICluster;
import org.apache.cassandra.distributed.api.ICoordinator;
import org.apache.cassandra.distributed.api.IInstanceConfig;
import org.apache.cassandra.distributed.api.IInvokableInstance;
import org.apache.cassandra.distributed.api.IListen;
import org.apache.cassandra.distributed.api.IMessage;
import org.apache.cassandra.distributed.api.SimpleQueryResult;
import org.apache.cassandra.distributed.shared.NetworkTopology;
public abstract class DelegatingInvokableInstance implements IInvokableInstance
{
public abstract IInvokableInstance delegate();
protected abstract IInvokableInstance delegateForStartup();
@Override
public <E extends Serializable> E transfer(E object)
{
return delegate().transfer(object);
}
@Override
public InetSocketAddress broadcastAddress()
{
return delegate().broadcastAddress();
}
@Override
public Object[][] executeInternal(String query, Object... args)
{
return delegate().executeInternal(query, args);
}
public SimpleQueryResult executeInternalWithResult(String query, Object... args)
{
return delegate().executeInternalWithResult(query, args);
}
@Override
public UUID schemaVersion()
{
return delegate().schemaVersion();
}
@Override
public void startup()
{
throw new UnsupportedOperationException();
}
@Override
public void schemaChangeInternal(String query)
{
delegate().schemaChangeInternal(query);
}
@Override
public int getMessagingVersion()
{
return delegate().getMessagingVersion();
}
@Override
public void setMessagingVersion(InetSocketAddress endpoint, int version)
{
delegate().setMessagingVersion(endpoint, version);
}
@Override
public String getReleaseVersionString()
{
return delegate().getReleaseVersionString();
}
public void flush(String keyspace)
{
delegate().flush(keyspace);
}
public void forceCompact(String keyspace, String table)
{
delegate().forceCompact(keyspace, table);
}
@Override
public IInstanceConfig config()
{
return delegate().config();
}
@Override
public ICoordinator coordinator()
{
// TODO: stash and clear coordinator on startup/shutdown?
return delegate().coordinator();
}
public IListen listen()
{
return delegate().listen();
}
@Override
public Future<Void> shutdown()
{
return delegate().shutdown();
}
@Override
public void startup(ICluster cluster)
{
delegateForStartup().startup(cluster);
}
@Override
public void postStartup()
{
delegateForStartup().postStartup();
}
@Override
public void receiveMessage(IMessage message)
{
delegate().receiveMessage(message);
}
@Override
public void receiveMessageWithInvokingThread(IMessage message)
{
delegate().receiveMessageWithInvokingThread(message);
}
@Override
public <O> CallableNoExcept<Future<O>> async(CallableNoExcept<O> call)
{
return delegate().async(call);
}
@Override
public <O> CallableNoExcept<O> sync(CallableNoExcept<O> call)
{
return delegate().sync(call);
}
@Override
public CallableNoExcept<Future<?>> async(Runnable run)
{
return delegate().async(run);
}
@Override
public Runnable sync(Runnable run)
{
return delegate().sync(run);
}
@Override
public <I> Function<I, Future<?>> async(Consumer<I> consumer)
{
return delegate().async(consumer);
}
@Override
public <I> Consumer<I> sync(Consumer<I> consumer)
{
return delegate().sync(consumer);
}
@Override
public <I1, I2> BiFunction<I1, I2, Future<?>> async(BiConsumer<I1, I2> consumer)
{
return delegate().async(consumer);
}
@Override
public <I1, I2> BiConsumer<I1, I2> sync(BiConsumer<I1, I2> consumer)
{
return delegate().sync(consumer);
}
@Override
public <I1, I2, I3> TriFunction<I1, I2, I3, Future<?>> async(TriConsumer<I1, I2, I3> consumer)
{
return delegate().async(consumer);
}
@Override
public <I1, I2, I3> TriConsumer<I1, I2, I3> sync(TriConsumer<I1, I2, I3> consumer)
{
return delegate().sync(consumer);
}
@Override
public <I, O> Function<I, Future<O>> async(Function<I, O> f)
{
return delegate().async(f);
}
@Override
public <I, O> Function<I, O> sync(Function<I, O> f)
{
return delegate().sync(f);
}
@Override
public <I1, I2, O> BiFunction<I1, I2, Future<O>> async(BiFunction<I1, I2, O> f)
{
return delegate().async(f);
}
@Override
public <I1, I2, O> BiFunction<I1, I2, O> sync(BiFunction<I1, I2, O> f)
{
return delegate().sync(f);
}
@Override
public <I1, I2, I3, O> TriFunction<I1, I2, I3, Future<O>> async(TriFunction<I1, I2, I3, O> f)
{
return delegate().async(f);
}
@Override
public <I1, I2, I3, O> TriFunction<I1, I2, I3, O> sync(TriFunction<I1, I2, I3, O> f)
{
return delegate().sync(f);
}
@Override
public <O> O callOnInstance(SerializableCallable<O> call)
{
return delegate().callOnInstance(call);
}
public <I1, I2, I3, I4, O> QuadFunction<I1, I2, I3, I4, Future<O>> async(QuadFunction<I1, I2, I3, I4, O> f)
{
return delegate().async(f);
}
@Override
public <I1, I2, I3, I4, O> QuadFunction<I1, I2, I3, I4, O> sync(QuadFunction<I1, I2, I3, I4, O> f)
{
return delegate().sync(f);
}
@Override
public <I1, I2, I3, I4, I5, O> QuintFunction<I1, I2, I3, I4, I5, Future<O>> async(QuintFunction<I1, I2, I3, I4, I5, O> f)
{
return delegate().async(f);
}
@Override
public <I1, I2, I3, I4, I5, O> QuintFunction<I1, I2, I3, I4, I5, O> sync(QuintFunction<I1, I2, I3, I4, I5, O> f)
{
return delegate().sync(f);
}
}