@Override protected MetaDataRetrieval createMetaDataRetrieval(ControllerContext context, List<MetaDataRetrieval> retrievals) { Controller controller = context.getController(); if (controller instanceof KernelController) { KernelController kernelController = (KernelController) controller; MetaDataRetrieval result = kernelController.getKernel().getMetaDataRepository().createMetaDataRetrieval(context, retrievals); if (result != null) return result; } return super.createMetaDataRetrieval(context, retrievals); } }
public MetaDataRetrieval initMetaDataRetrieval(MutableMetaDataRepository repository, ControllerContext context) { ScopeKey scopeKey = getScope(); List<MetaDataRetrieval> retrievals = new ArrayList<MetaDataRetrieval>(); for (Scope scope : scopeKey.getScopes()) { ScopeKey thisScope = new ScopeKey(scope); MetaDataRetrieval retrieval = repository.getMetaDataRetrieval(thisScope); if (retrieval == null) { retrieval = initMetaDataRetrieval(repository, context, scope); if (retrieval == null) { retrieval = initMutableMetaDataRetrieval(repository, context, thisScope); repository.addMetaDataRetrieval(retrieval); addedScopes.add(thisScope); } } retrievals.add(0, retrieval); } MetaDataRetrieval metaDataRetrieval = createMetaDataRetrieval(context, retrievals); repository.addMetaDataRetrieval(metaDataRetrieval); addedScopes.add(metaDataRetrieval.getScope()); return metaDataRetrieval; }