1 package net.sourceforge.jenesis4java;
2
3 /*
4 * #%L
5 * Jenesis 4 Java Code Generator
6 * %%
7 * Copyright (C) 2000 - 2015 jenesis4java
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 * #L%
23 */
24
25 /**
26 * Copyright (C) 2008, 2010 Richard van Nieuwenhoven - ritchie [at] gmx [dot] at
27 * Copyright (C) 2000, 2001 Paul Cody Johnston - pcj@inxar.org <br>
28 * This file is part of Jenesis4java. Jenesis4java is free software: you can
29 * redistribute it and/or modify it under the terms of the GNU Lesser General
30 * Public License as published by the Free Software Foundation, either version 3
31 * of the License, or (at your option) any later version.<br>
32 * Jenesis4java is distributed in the hope that it will be useful, but WITHOUT
33 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
34 * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
35 * details.<br>
36 * You should have received a copy of the GNU Lesser General Public License
37 * along with Jenesis4java. If not, see <http://www.gnu.org/licenses/>.
38 */
39 /**
40 * {@code Expression} subinterface for expressions which access data including
41 * field accesses, array accesses, and method invocations. An {@code Accessor}
42 * expression has two parts with the general form <qualifier> dot
43 * <name>. The qualifier references the handle to object where the
44 * resource resides and the name references the name of the resource. For
45 * example, in {@code this.id}, {@code this} is the qualifier and {@code id} is
46 * the name. The qualifier is optional, in which case the {@code Accessor} will
47 * render without the dot.
48 */
49 public interface Accessor extends Variable {
50
51 /**
52 * Return the qualifier expression of this access.
53 */
54 Expression getQualExpression();
55
56 /**
57 * Sets the qualified name of the resource container object.
58 */
59 String getQualifier();
60
61 /**
62 * Sets the qualified name of the resource container object.
63 */
64 Accessor setQualifier(String name);
65 }