/* * Copyright 2016 Hortonworks. * * 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.hortonworks.registries.storage; /** * Represents a versioned entity which can be stored by storage layer. * <p> * For example, user wants to create a set of versioned schemas. User creates a root entity containing information * about this set of schema like name, compatibility etc. There can be multiple versions of schemas with in that * schema set and those can be created with {@link VersionedStorable}. */ public interface VersionedStorable extends Storable { String ROOT_ENTITY_ID = "rootEntityId"; String DESCRIPTION = "description"; String VERSION = "version"; /** * Returns the version of the instance. */ Integer getVersion(); /** * Returns the description about this version. */ String getDescription(); /** * Returns entity id for which this version is created. * For example, user wants to create a set of versioned schemas. User creates a root entity containing information * about this set of schema like name, compatibility etc. There can be multiple versions of schemas with in that * schema set then those versions can refer to that schema set entity with rootEntityId. */ Long getRootEntityId(); }