private Map<BeanId, Bean> getDirectSuccessors(Bean bean, Map<BeanId, Bean> all) { Map<BeanId, Bean> successors = new HashMap<BeanId, Bean>(); for (Bean b : all.values()) { List<BeanId> refs = b.getReferences(); if (refs.contains(bean.getId())) { successors.put(b.getId(), b); } } return successors; }
private Map<BeanId, Bean> getDirectPredecessors(Bean bean, Map<BeanId, Bean> all) { Map<BeanId, Bean> predecessors = new HashMap<BeanId, Bean>(); for (BeanId ref : bean.getReferences()) { Bean predecessor = all.get(ref); if (predecessor == null) { throw CFG304_BEAN_DOESNT_EXIST(ref); } predecessors.put(predecessor.getId(), predecessor); } return predecessors; }
public void put(Bean bean) { // disconnect any references that have been set for (BeanId id : bean.getReferences()) { id.setBean(null); } beans.put(bean.getId(), bean); }
private Map<BeanId, Bean> getDirectSuccessors(Bean bean) { Map<BeanId, Bean> successors = new HashMap<>(); for (Bean b : storage.all()) { List<BeanId> refs = b.getReferences(); if (refs.contains(bean.getId())) { successors.put(b.getId(), b); } } return successors; }
private Map<BeanId, Bean> getDirectPredecessors(Bean bean) { Map<BeanId, Bean> predecessors = new HashMap<>(); for (BeanId ref : bean.getReferences()) { Bean predecessor = storage.get(ref); if (predecessor == null) { throw CFG304_BEAN_DOESNT_EXIST(ref); } predecessors.put(predecessor.getId(), predecessor); } return predecessors; }
@Override public Optional<Bean> getLazy(BeanId id) throws AbortRuntimeException { Bean bean = storage.get(id); if (bean == null) { return Optional.absent(); } for (BeanId ref : bean.getReferences()) { Bean refBean = storage.get(ref); if (refBean == null) { throw CFG301_MISSING_RUNTIME_REF(ref); } ref.setBean(refBean); } return Optional.of(bean); }
@Override public Bean getLazy(BeanId id) throws AbortRuntimeException { Map<BeanId, Bean> all = readValuesAsMap(); Bean bean = all.get(id); if (bean == null) { throw CFG304_BEAN_DOESNT_EXIST(id); } for (BeanId ref : bean.getReferences()) { Bean refBean = all.get(ref); if (bean == null) { throw CFG301_MISSING_RUNTIME_REF(ref); } ref.setBean(refBean); } return bean; }
private void getEagerly(BeanId id, HashMap<BeanId, Bean> found, Set<BeanId> seen) { if (seen.contains(id)) { return; } seen.add(id); Bean bean = found.get(id) == null ? storage.get(id) : found.get(id); if (bean == null) { return; } found.put(id, bean); // bean found, fetch references. for (BeanId ref : bean.getReferences()) { if (ref.getBean() != null) { continue; } Bean refBean = found.get(ref) == null ? storage.get(ref) : found.get(ref); if (refBean == null) { throw CFG301_MISSING_RUNTIME_REF(bean.getId(), ref); } ref.setBean(refBean); found.put(ref, refBean); getEagerly(ref, found, seen); } }
for (BeanId ref : predecessor.getReferences()) { Bean b = storage.get(ref); if (b == null) { for (BeanId ref : toValidate.getReferences()) { Bean predecessor = predecessors.get(ref); if (predecessor == null) {
for (BeanId ref : predecessor.getReferences()) { Bean b = all.get(ref); if (b == null) { for (BeanId ref : toValidate.getReferences()) { Bean predecessor = predecessors.get(ref); if (predecessor == null) {
private void findReferences(BeanId reference, Bean predecessor, ArrayList<Bean> matches, ArrayList<Bean> checked) { if (checked.contains(predecessor)) { return; } checked.add(predecessor); if (reference.equals(predecessor.getId()) && !matches.contains(predecessor)) { matches.add(predecessor); } for (BeanId ref : predecessor.getReferences()) { if (ref.getBean() == null) { continue; } if (matches.contains(ref.getBean())) { continue; } if (ref.equals(reference)) { matches.add(ref.getBean()); } findReferences(reference, ref.getBean(), matches, checked); } }
private void findReferences(BeanId reference, Bean predecessor, ArrayList<Bean> matches, ArrayList<Bean> checked) { if (checked.contains(predecessor)) { return; } checked.add(predecessor); if (reference.equals(predecessor.getId()) && !matches.contains(predecessor)) { matches.add(predecessor); } for (BeanId ref : predecessor.getReferences()) { if (ref.getBean() == null) { continue; } if (matches.contains(ref.getBean())) { continue; } if (ref.equals(reference)) { matches.add(ref.getBean()); } findReferences(reference, ref.getBean(), matches, checked); } }
private Bean getEagerly(BeanId id, Map<BeanId, Bean> all) { Bean result = all.get(id); if (result == null) { throw CFG304_BEAN_DOESNT_EXIST(id); } // bean found, initalize references. for (BeanId ref : result.getReferences()) { if (ref.getBean() != null) { continue; } Bean refBean = all.get(ref); if (refBean == null) { throw CFG301_MISSING_RUNTIME_REF(result.getId(), ref); } ref.setBean(refBean); getEagerly(ref, all); } return result; }
public void setSchema(Bean b, Map<String, Schema> schemas) { Schema s = schemas.get(b.getId().getSchemaName()); if (s == null) { throw CFG101_SCHEMA_NOT_EXIST(b.getId().getSchemaName()); } b.set(s); for (BeanId id : b.getReferences()) { Bean ref = id.getBean(); if (ref != null && ref.getSchema() == null) { setSchema(ref, schemas); } } }
public static void setSchema(Bean b, Map<String, Schema> schemas) { Schema s = schemas.get(b.getId().getSchemaName()); if (s == null) { throw CFG101_SCHEMA_NOT_EXIST(b.getId().getSchemaName()); } b.set(s); for (BeanId id : b.getReferences()) { Bean ref = id.getBean(); if (ref != null && ref.getSchema() == null) { setSchema(ref, schemas); } } }