All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opendaylight.ovsdb.openstack.netvirt.SouthboundEvent Maven / Gradle / Ivy

/*
 * Copyright (c) 2013, 2015 Red Hat, Inc. and others. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
 * and is available at http://www.eclipse.org/legal/epl-v10.html
 */

package org.opendaylight.ovsdb.openstack.netvirt;

import org.opendaylight.ovsdb.openstack.netvirt.api.Action;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbBridgeAugmentation;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.ovsdb.rev150105.OvsdbTerminationPointAugmentation;
import org.opendaylight.yang.gen.v1.urn.tbd.params.xml.ns.yang.network.topology.rev131021.network.topology.topology.Node;
import org.opendaylight.yangtools.yang.binding.DataObject;

public class SouthboundEvent extends AbstractEvent {
    public enum Type { NODE, OPENVSWITCH, BRIDGE, CONTROLLER, PORT }
    private Type type;
    private Node node;
    private String tableName;
    private String uuid;
    private Object context;
    private DataObject augmentationData;
    private OvsdbBridgeAugmentation bridge;
    private OvsdbTerminationPointAugmentation port;
    private String portName;
    public SouthboundEvent(Node node, Action action) {
        super(HandlerType.SOUTHBOUND, action);
        this.type = Type.NODE;
        this.node = node;
    }
    public SouthboundEvent(Node node, OvsdbBridgeAugmentation bridge, Action action) {
        super(HandlerType.SOUTHBOUND, action);
        this.type = Type.BRIDGE;
        this.node = node;
        this.bridge = bridge;
    }
    public SouthboundEvent(Node node, OvsdbTerminationPointAugmentation port, String portName, Action action) {
        super(HandlerType.SOUTHBOUND, action);
        this.type = Type.PORT;
        this.node = node;
        this.port = port;
        this.portName = portName;
    }

    public SouthboundEvent(Node node, Type type, Action action) {
        super(HandlerType.SOUTHBOUND, action);
        this.type = type;
        this.node = node;
    }

    public SouthboundEvent(Node node, DataObject resourceAugmentationData, Type type, Action action) {
        super(HandlerType.SOUTHBOUND, action);
        this.type = type;
        this.node = node;
        this.augmentationData = resourceAugmentationData;
    }


    public Type getType() {
        return type;
    }
    public Node getNode() {
        return node;
    }
    public String getTableName() {
        return tableName;
    }
    public String getUuid() {
        return uuid;
    }
    public Object getContext() {
        return context;
    }
    public OvsdbBridgeAugmentation getBridge() {
        return bridge;
    }
    public OvsdbTerminationPointAugmentation getPort() {
        return port;
    }
    public String getPortName() {
        return portName;
    }

    public DataObject getAugmentationData() {
        return augmentationData;
    }

    @Override
    public String toString() {
        //if (type == Type.NODE) {
            return "SouthboundEvent [type=" + type
                    + ", action=" + super.getAction()
                    + ", augmentationData=" + augmentationData
                    + ", node=" + node + "]";
        //} else {
        //    return "SouthboundEvent [type=" + type + "]";
        //}
    }

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = super.hashCode();
        result = prime * result + ((node == null) ? 0 : node.hashCode());
        result = prime * result + ((tableName == null) ? 0 : tableName.hashCode());
        result = prime * result + ((type == null) ? 0 : type.hashCode());
        result = prime * result + ((uuid == null) ? 0 : uuid.hashCode());
        result = prime * result + ((augmentationData == null) ? 0 : augmentationData.hashCode());
        return result;
    }
    @Override
    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        if (obj == null) {
            return false;
        }
        if (getClass() != obj.getClass()) {
            return false;
        }
        if (!super.equals(obj)) {
            return false;
        }
        SouthboundEvent other = (SouthboundEvent) obj;
        if (node == null) {
            if (other.node != null) {
                return false;
            }
        } else if (!node.equals(other.node)) {
            return false;
        }
        if (tableName == null) {
            if (other.tableName != null) {
                return false;
            }
        } else if (!tableName.equals(other.tableName)) {
            return false;
        }
        if (type == null) {
            if (other.type != null) {
                return false;
            }
        } else if (!type.equals(other.type)) {
            return false;
        }
        if (uuid == null) {
            if (other.uuid != null) {
                return false;
            }
        } else if (!uuid.equals(other.uuid)) {
            return false;
        }
        return true;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy