blob: 44f97b234361f086fe8d00bf00a706d047328bc4 [file] [log] [blame]
khenaidoobf6e7bb2018-08-14 22:27:29 -04001/*
2 * Copyright 2018-present Open Networking Foundation
3
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7
8 * http://www.apache.org/licenses/LICENSE-2.0
9
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
Stephane Barbarie4a2564d2018-07-26 11:02:58 -040016package model
17
Stephane Barbarieec0919b2018-09-05 14:14:29 -040018type Revision interface {
19 Finalize()
20 SetConfig(revision *DataRevision)
21 GetConfig() *DataRevision
22 SetChildren(children map[string][]Revision)
23 GetChildren() map[string][]Revision
24 SetHash(hash string)
25 GetHash() string
26 ClearHash()
27 SetBranch(branch *Branch)
28 GetBranch() *Branch
29 Get(int) interface{}
30 GetData() interface{}
31 GetNode() *Node
32 UpdateData(data interface{}, branch *Branch) Revision
33 UpdateChildren(name string, children []Revision, branch *Branch) Revision
34 UpdateAllChildren(children map[string][]Revision, branch *Branch) Revision
Stephane Barbarie4a2564d2018-07-26 11:02:58 -040035}