- Timestamp:
- 09/23/13 18:54:07 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/params/AccessOperations.java
r105 r107 99 99 public static Access loadAll(@Nullable final Access rootAccess, Source source, final Registry registry) { 100 100 final MultiParamLoader loader = new MultiParamLoader(); 101 log.trace("loading all from {} into {}", source, rootAccess); 101 102 loader.setNewSource(source); 102 103 final LinkedList<Access> accessesStack = new LinkedList<>(); … … 146 147 147 148 if (p instanceof ListParam) { 148 ListAccess listAccess = Casting.assertCast(ListAccess.class, registry.prepareAccess(p)); 149 listAccess.select(a.get(p, Object.class)); 149 ListAccess listAccess = Casting.assertCast(ListAccess.class, registry.prepareAccess(p, true)); 150 Object list = a.get(p, Object.class); 151 if (list == null) { 152 list = listAccess.createAccessee(); 153 a.set(p, list); 154 } 155 listAccess.select(list); 150 156 parent.set(new Pair<Access, CompositeParam>(listAccess, listAccess.prepareParamFor(Integer.toString(listAccess.getParamCount())))); 151 157 … … 157 163 158 164 if (parent.get() == null) { 165 log.trace("{} cannot be placed in {}", name, a); 159 166 accessIterator.remove(); 160 167 } … … 162 169 163 170 if (parent.get() == null) { 164 throw new FramsticksException().msg("failed to find place for loaded object").arg("name", name); 165 } 166 167 currentAccess.set(registry.prepareAccess(parent.get().second ));171 throw new FramsticksException().msg("failed to find place for loaded object").arg("name", name); //.arg("in", accessesStack); 172 } 173 174 currentAccess.set(registry.prepareAccess(parent.get().second, true)); 168 175 Object object = parent.get().first.get(parent.get().second, Object.class); 169 176 if (object != null) { … … 200 207 } 201 208 202 public static void saveAll(Access access, Sinksink, Registry registry) {209 public static <S extends Sink> S saveAll(Access access, S sink, Registry registry) { 203 210 if (access instanceof ObjectAccess) { 204 211 savePrimitives(access, sink); … … 209 216 continue; 210 217 } 211 saveAll(registry.prepareAccess(p).select(child), sink, registry); 212 } 218 saveAll(registry.prepareAccess(p, true).select(child), sink, registry); 219 } 220 return sink; 213 221 } 214 222 … … 219 227 continue; 220 228 } 221 savePrimitives(registry.prepareAccess(p ).select(child), sink);229 savePrimitives(registry.prepareAccess(p, true).select(child), sink); 222 230 } 223 231 } … … 297 305 } 298 306 299 return registry.prepareAccess(result ).select(objectAccess.get(result, Object.class));307 return registry.prepareAccess(result, true).select(objectAccess.get(result, Object.class)); 300 308 } 301 309 }); … … 323 331 } 324 332 if ((param.getFlags() & ParamFlags.DONTLOAD) == 0) { 325 int retFlags = access.set((ValueParam) param, entry.value); 333 ValueParam valueParam = (ValueParam) param; 334 // Object object = valueParam.deserialize(entry.value, null, Object.class); 335 int retFlags = access.set(valueParam, entry.value); 326 336 if ((retFlags & (PSET_HITMIN | PSET_HITMAX)) != 0) { 327 337 String which = ((retFlags & PSET_HITMIN) != 0) ? "small" : "big"; … … 440 450 */ 441 451 public static <T, F> T convert(Class<T> toJavaClass, F from, Registry registry) { 452 log.trace("converting from {} to {}", from, toJavaClass); 442 453 if (toJavaClass.equals(from.getClass())) { 443 454 return toJavaClass.cast(from); … … 478 489 479 490 if (avp instanceof CompositeParam) { 480 assureEquality(registry.prepareAccess((CompositeParam) avp ).select(oa), registry.prepareAccess((CompositeParam) bvp).select(ob), registry);491 assureEquality(registry.prepareAccess((CompositeParam) avp, false).select(oa), registry.prepareAccess((CompositeParam) bvp, false).select(ob), registry); 481 492 continue; 482 493 }
Note: See TracChangeset
for help on using the changeset viewer.