2 * Copyright (c) 2013 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.config.manager.impl;
10 import javax.annotation.Nullable;
12 import org.opendaylight.controller.config.api.ModuleIdentifier;
13 import org.opendaylight.controller.config.manager.impl.dynamicmbean.DynamicReadableWrapper;
14 import org.opendaylight.controller.config.manager.impl.jmx.TransactionModuleJMXRegistrator
15 .TransactionModuleJMXRegistration;
16 import org.opendaylight.controller.config.spi.Module;
17 import org.opendaylight.controller.config.spi.ModuleFactory;
18 import org.opendaylight.yangtools.concepts.Identifiable;
20 public class ModuleInternalTransactionalInfo implements Identifiable<ModuleIdentifier> {
21 private final ModuleIdentifier name;
22 private final Module module;
23 private final ModuleFactory moduleFactory;
25 private final ModuleInternalInfo maybeOldInternalInfo;
26 private final TransactionModuleJMXRegistration transactionModuleJMXRegistration;
28 ModuleInternalTransactionalInfo(ModuleIdentifier name, Module module,
29 ModuleFactory moduleFactory,
30 ModuleInternalInfo maybeOldInternalInfo,
31 TransactionModuleJMXRegistration transactionModuleJMXRegistration) {
34 this.moduleFactory = moduleFactory;
35 this.maybeOldInternalInfo = maybeOldInternalInfo;
36 this.transactionModuleJMXRegistration = transactionModuleJMXRegistration;
41 * Use {@link #getIdentifier()} instead.
44 public ModuleIdentifier getName() {
48 public boolean hasOldModule() {
49 return maybeOldInternalInfo != null;
52 public DestroyedModule toDestroyedModule() {
53 if (maybeOldInternalInfo == null) {
54 throw new IllegalStateException("Cannot destroy uncommitted module");
56 DynamicReadableWrapper oldModule = maybeOldInternalInfo
58 return new DestroyedModule(name, oldModule.getInstance(),
59 maybeOldInternalInfo.getModuleJMXRegistrator(),
60 maybeOldInternalInfo.getOsgiRegistration(),
61 maybeOldInternalInfo.getOrderingIdx());
65 public Module getModule() {
69 public ModuleFactory getModuleFactory() {
74 public ModuleInternalInfo getOldInternalInfo() {
75 if (maybeOldInternalInfo == null)
76 throw new NullPointerException();
77 return maybeOldInternalInfo;
80 public TransactionModuleJMXRegistration getTransactionModuleJMXRegistration() {
81 return transactionModuleJMXRegistration;
85 public ModuleIdentifier getIdentifier() {