2 * Copyright (c) 2015 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
9 package org.opendaylight.openflowplugin.impl.translator;
11 import org.opendaylight.openflowplugin.api.openflow.device.MessageTranslator;
12 import org.opendaylight.openflowplugin.api.openflow.device.TranslatorLibrary;
13 import org.opendaylight.openflowplugin.api.openflow.md.core.TranslatorKey;
14 import java.util.HashMap;
18 * Created by Martin Bobak <mbobak@cisco.com> on 3.4.2015.
20 public class TranslatorLibraryBuilder {
22 private final Map<TranslatorKey, MessageTranslator<?, ?>> translators = new HashMap<>();
24 public TranslatorLibraryBuilder addTranslator(TranslatorKey key, MessageTranslator<?, ?> translator) {
25 translators.put(key, translator);
29 public TranslatorLibrary build() {
30 return new TranslatorLibraryImpl(translators);
33 private final class TranslatorLibraryImpl implements TranslatorLibrary {
34 private Map<TranslatorKey, MessageTranslator<?, ?>> translators = new HashMap<>();
36 TranslatorLibraryImpl(Map<TranslatorKey, MessageTranslator<?, ?>> translators) {
37 this.translators = translators;
41 public MessageTranslator<?, ?> addTranslator(TranslatorKey key, MessageTranslator<?, ?> translator) {
42 return translators.put(key, translator);
46 @SuppressWarnings("unchecked")
47 public <I, O> MessageTranslator<I, O> lookupTranslator(TranslatorKey key) {
48 return (MessageTranslator<I, O>) translators.get(key);