1 /*
2 * Copyright (c) 2003
3 * Information Desire GmbH
4 * All rights reserved.
5 */
6 package com.infodesire.infobit.external.impl;
7
8 import com.infodesire.infobit.InfobitException;
9 import com.infodesire.infobit.InfobitSecurityException;
10
11 import com.infodesire.infobit.data.Infobit;
12 import com.infodesire.infobit.data.Version;
13
14 import org.apache.commons.logging.Log;
15 import org.apache.commons.logging.LogFactory;
16
17 import java.util.Collection;
18 import java.util.HashSet;
19 import java.util.Set;
20
21 /***
22 * This class represents the assignment of the version of an infobit as the
23 * actual one.
24 *
25 * @author peter2
26 * @created 2. September 2003
27 * @version $Revision: 1.1 $
28 */
29 class ActualVersionNode extends BufferNode {
30
31 private final static Log _log = LogFactory.getLog(ActualVersionNode.class);
32
33 /***
34 * Buffered representation of the referred infobit
35 */
36 private InfobitNode _infobitNode;
37
38 /***
39 * The resolution of {@link #_infobitNode}
40 */
41 private Infobit _infobit;
42
43 /***
44 * Buffered representation of the actual version
45 */
46 private ContentNode _actualVersionNode;
47
48 /***
49 * The resolved {@link #_actualVersionNode actual version}
50 */
51 private Version _actualVersion;
52
53
54 /***
55 * Gets the Dependencies attribute of the ActualVersionNode object
56 *
57 * @return The Dependencies value
58 */
59 Collection getDependencies() {
60 Set dep = new HashSet();
61 dep.add(_infobitNode);
62 dep.add(_actualVersionNode);
63
64 return dep;
65 }
66
67
68 /***
69 * Gets the {@link #setInfobitNode infobit node} for which to set the actual
70 * version.
71 *
72 * @return The InfobitNode value
73 */
74 InfobitNode getInfobitNode() {
75 return _infobitNode;
76 }
77
78
79 /***
80 * Retrieves the {@link #setActualVersionNode actual version} of the {@link
81 * #setInfobitNode referred infobit node}.
82 *
83 * @return The ActualVersionNode value
84 */
85 ContentNode getActualVersionNode() {
86 return _actualVersionNode;
87 }
88
89
90 /***
91 * Defines the infobit referred to by its buffered representation.
92 *
93 * @param node The new InfobitNode value
94 */
95 void setInfobitNode(InfobitNode node) {
96 _infobitNode = node;
97 }
98
99
100 /***
101 * Defines the actual version of the {@link #setInfobitNode referred infobit
102 * node}
103 *
104 * @param node The new ActualVersionNode value
105 */
106 void setActualVersionNode(ContentNode node) {
107 _actualVersionNode = node;
108 }
109
110
111 /***
112 * DOCUMENT METHOD
113 *
114 * @param dependency Description of Parameter
115 * @param value Description of Parameter
116 */
117 void resolveDependency(BufferNode dependency, Object value) {
118 if (dependency == _infobitNode) {
119 _infobit = (Infobit) value;
120 }
121 else if (dependency == _actualVersionNode) {
122 _actualVersion = (Version) value;
123 }
124 else {
125 String m = "Failed assertion: Unknown dependency";
126 _log.fatal(m);
127 throw new RuntimeException(m);
128 }
129 }
130
131
132 /***
133 * Sets the actual version.
134 *
135 * @return Always <code>null</code>
136 * @exception InfobitException Description of Exception
137 * @exception InfobitSecurityException Description of Exception
138 */
139 Object persistBuffer() throws InfobitException, InfobitSecurityException {
140 _manager.setActualVersion(_infobit, _actualVersion);
141
142 return null;
143 }
144
145 }
This page was automatically generated by Maven