io.hekate.codec.SingletonCodecFactory Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hekate-core Show documentation
Show all versions of hekate-core Show documentation
Java library for cluster communications and computing.
/*
* Copyright 2020 The Hekate Project
*
* The Hekate Project 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 io.hekate.codec;
/**
* Singleton codec factory.
*
*
* This is a helper class that always returns the same {@link Codec} instance from the {@link #createCodec()} method. Can be used only with
* those codecs that are safe to be shared by multiple threads.
*
*
* @param Codec data type.
*/
public class SingletonCodecFactory implements CodecFactory {
private final Codec codec;
/**
* Constructs new instance.
*
* @param codec Singleton codec instance.
*/
public SingletonCodecFactory(Codec codec) {
this.codec = codec;
}
@Override
public Codec createCodec() {
return codec;
}
@Override
public String toString() {
return getClass().getSimpleName()
+ "[codec=" + codec
+ ']';
}
}