All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.hazelcast.core.Instance Maven / Gradle / Ivy

There is a newer version: 5.5.0
Show newest version
/*
 * Copyright (c) 2008-2013, Hazelcast, Inc. All Rights Reserved.
 *
 * Licensed 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 com.hazelcast.core;

public interface Instance {

    enum InstanceType {
        QUEUE(1), MAP(2), SET(3), LIST(4), LOCK(5), TOPIC(6), MULTIMAP(7),
        ID_GENERATOR(8), ATOMIC_NUMBER(9), SEMAPHORE(10), COUNT_DOWN_LATCH(11);

        private final int typeId;

        InstanceType(int typeId) {
            this.typeId = typeId;
        }

        public static InstanceType valueOf(int typeId) {
            switch (typeId) {
                case 1:
                    return QUEUE;
                case 2:
                    return MAP;
                case 3:
                    return SET;
                case 4:
                    return LIST;
                case 5:
                    return LOCK;
                case 6:
                    return TOPIC;
                case 7:
                    return MULTIMAP;
                case 8:
                    return ID_GENERATOR;
                case 9:
                    return ATOMIC_NUMBER;
                case 10:
                    return SEMAPHORE;
                case 11:
                    return COUNT_DOWN_LATCH;
                default:
                    return MAP;
            }
        }

        public int getTypeId() {
            return typeId;
        }

        public boolean isAtomicNumber() {
            return typeId == ATOMIC_NUMBER.typeId;
        }

        public boolean isCountDownLatch() {
            return typeId == COUNT_DOWN_LATCH.typeId;
        }

        public boolean isIdGenerator() {
            return typeId == ID_GENERATOR.typeId;
        }

        public boolean isList() {
            return typeId == LIST.typeId;
        }

        public boolean isLock() {
            return typeId == LOCK.typeId;
        }

        public boolean isMap() {
            return typeId == MAP.typeId;
        }

        public boolean isMultiMap() {
            return typeId == MULTIMAP.typeId;
        }

        public boolean isQueue() {
            return typeId == QUEUE.typeId;
        }

        public boolean isSemaphore() {
            return typeId == SEMAPHORE.typeId;
        }

        public boolean isSet() {
            return typeId == SET.typeId;
        }

        public boolean isTopic() {
            return typeId == TOPIC.typeId;
        }
    }

    /**
     * Returns instance type such as map, set, list, lock, topic, multimap, id generator
     *
     * @return instance type
     */
    InstanceType getInstanceType();

    /**
     * Destroys this instance cluster-wide.
     * Clears and releases all resources for this instance.
     */
    void destroy();

    /**
     * Returns the unique id for this instance.
     *
     * @return id the of this instance
     */
    Object getId();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy