1 package org.synchronoss.cpo.core;
2
3 /*-
4 * [[
5 * core
6 * ==
7 * Copyright (C) 2003 - 2026 Exaxis LLC, Synchronoss Technologies Inc
8 * ==
9 * This program is free software: you can redistribute it and/or modify
10 * it under the terms of the GNU Lesser General Public License as
11 * published by the Free Software Foundation, either version 3 of the
12 * License, or (at your option) any later version.
13 *
14 * This program is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 * GNU General Lesser Public License for more details.
18 *
19 * You should have received a copy of the GNU General Lesser Public
20 * License along with this program. If not, see
21 * <http://www.gnu.org/licenses/lgpl-3.0.html>.
22 * ]]
23 */
24
25 import org.synchronoss.cpo.core.meta.domain.CpoArgument;
26 import org.synchronoss.cpo.core.meta.domain.CpoAttribute;
27 import org.synchronoss.cpo.core.meta.domain.CpoClass;
28 import org.synchronoss.cpo.core.meta.domain.CpoFunction;
29 import org.synchronoss.cpo.core.meta.domain.CpoFunctionGroup;
30
31 /**
32 * This defines a depth first meta visitor.
33 *
34 * @author Michael Bellomo
35 */
36 public interface MetaVisitor {
37
38 /**
39 * Visits a class node in the meta model.
40 *
41 * @param cpoClass the class to be visited
42 */
43 void visit(CpoClass cpoClass);
44
45 /**
46 * Visits an attribute node in the meta model.
47 *
48 * @param cpoAttribute the attribute to be visited
49 */
50 void visit(CpoAttribute cpoAttribute);
51
52 /**
53 * Visits a function group node in the meta model.
54 *
55 * @param cpoFunctionGroup the function group to be visited
56 */
57 void visit(CpoFunctionGroup cpoFunctionGroup);
58
59 /**
60 * Visits a function node in the meta model.
61 *
62 * @param cpoFunction the function to be visited
63 */
64 void visit(CpoFunction cpoFunction);
65
66 /**
67 * Visits an argument node in the meta model.
68 *
69 * @param cpoArgument the argument to be visited
70 */
71 void visit(CpoArgument cpoArgument);
72 }