Skip to content

Commit 1a9539c

Browse files
author
lukas.molzberger
committed
- fixes
1 parent 7987650 commit 1a9539c

File tree

3 files changed

+18
-5
lines changed

3 files changed

+18
-5
lines changed

fields/src/main/java/network/aika/fielddefs/Type.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public abstract class Type<T extends Type<T, O>, O extends Obj<T, O>> {
4040
protected Class<? extends O> clazz;
4141

4242
protected List<T> parents = new ArrayList<>();
43+
protected List<T> children = new ArrayList<>();
4344

4445
Map<FieldTag, FieldDefinition<T, O>> fieldDefinitions = new TreeMap<>(FIELD_TAG_COMPARATOR);
4546
Map<FieldTag, FieldInputDefinition<T, O>> fieldInputDefinitions = new TreeMap<>(FIELD_TAG_COMPARATOR);
@@ -51,7 +52,14 @@ public Type(TypeRegistry registry, String name, Class<? extends O> clazz) {
5152
registry.register(this);
5253
}
5354

55+
public boolean isAbstract() {
56+
return !children.isEmpty();
57+
}
58+
5459
protected O instantiate(List<Class<?>> parameterTypes, List<Object> parameters) {
60+
if(isAbstract())
61+
throw new RuntimeException("Unable to instantiate abstract type " + name);
62+
5563
try {
5664
O instance = clazz.getConstructor(parameterTypes.toArray(new Class[0]))
5765
.newInstance(parameters.toArray(new Object[0]));
@@ -121,6 +129,7 @@ public Class<? extends O> getClazz() {
121129

122130
public T addParent(T p) {
123131
parents.add(p);
132+
p.children.add((T) this);
124133

125134
return (T) this;
126135
}
@@ -129,6 +138,10 @@ public List<T> getParents() {
129138
return parents;
130139
}
131140

141+
public List<T> getChildren() {
142+
return children;
143+
}
144+
132145
public void instantiateFields(O o) {
133146
Map<FieldTag, FieldDefinition<T, O>> fieldDefs = new HashMap<>();
134147
collectFieldDefinitions(fieldDefs);

model/src/main/java/network/aika/model/BindingDef.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -115,11 +115,11 @@ public void initNodes() {
115115

116116
sum(activation, UPDATE_VALUE);
117117

118-
activation.getState(NON_FEEDBACK).getField(NET)
119-
.out(o -> o.getActivation().getState(OUTER_FEEDBACK).getFieldInput(NET), varLink());
118+
activation.getState(OUTER_FEEDBACK).getField(NET)
119+
.in(o -> o.getActivation().getState(NON_FEEDBACK).getFieldOutput(NET), varLink());
120120

121-
outerFeedbackState.state.getField(NET)
122-
.out(o -> o.getActivation().getState(INNER_FEEDBACK).getFieldInput(NET), varLink());
121+
activation.getState(INNER_FEEDBACK).getField(NET)
122+
.in(o -> o.getActivation().getState(OUTER_FEEDBACK).getFieldOutput(NET), varLink());
123123

124124

125125
neuron = new NeuronDefinition(

model/src/test/java/network/aika/model/TypeModelTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ public void testTypeModel() {
6161

6262
Synapse synapse = typeModel
6363
.getBinding()
64-
.getSynapse()
64+
.getInputObjectSynapse()
6565
.instantiate(inputNeuron, outputNeuron)
6666
.setWeight(10.0)
6767
.setPropagable(true);

0 commit comments

Comments
 (0)