org.openanzo.combus.realtime.DestinationDatasetTracker.java Source code

Java tutorial

Introduction

Here is the source code for org.openanzo.combus.realtime.DestinationDatasetTracker.java

Source

/*******************************************************************************
 * Copyright (c) 2008 Cambridge Semantics Incorporated.
 * 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
 * 
 * File:        $Source$
 * Created by:  Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com </a>)
 * Created on:  Dec 19, 2008
 * Revision:   $Id$
 * 
 * Contributors:
 *     Cambridge Semantics Incorporated - initial API and implementation
 *******************************************************************************/
package org.openanzo.combus.realtime;

import java.util.HashSet;
import java.util.Set;

import javax.jms.Destination;

import org.apache.commons.lang.builder.HashCodeBuilder;
import org.openanzo.rdf.URI;
import org.openanzo.services.impl.DatasetTracker;

/**
 * DestinationDatasetTracker is a dataset tracker for the server that contains the destination object for which this tracker is registered
 * 
 * @author Matthew Roy ( <a href="mailto:mroy@cambridgesemantics.com">mroy@cambridgesemantics.com</a>)
 * 
 */
class DestinationDatasetTracker extends DatasetTracker {
    protected final Destination destination;

    protected final URI userUri;

    protected Set<URI> namedGraphsUris = new HashSet<URI>();

    public DestinationDatasetTracker(Destination destination, URI userUri, URI datasetURI, Set<URI> defaultGraphs,
            Set<URI> namedGraphs, Set<URI> namedDatasets) {
        super(datasetURI, defaultGraphs, namedGraphs, namedDatasets);
        this.destination = destination;
        this.userUri = userUri;
    }

    public DestinationDatasetTracker(Destination destination, URI userUri, DatasetTracker tracker) {
        super(tracker.getTrackerURI(), tracker.getDefaultGraphs(), tracker.getNamedGraphs(),
                tracker.getNamedDatasets());
        this.destination = destination;
        this.userUri = userUri;
    }

    /**
     * @return the destination
     */
    public Destination getDestination() {
        return destination;
    }

    /**
     * @return the userUri
     */
    public URI getUserUri() {
        return userUri;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) {
            return true;
        }

        boolean result = false;
        if (o instanceof DestinationDatasetTracker) {
            DestinationDatasetTracker tracker = (DestinationDatasetTracker) o;
            result = (tracker.getDestination() == null && getDestination() == null)
                    || (tracker.getDestination() != null && tracker.getDestination().equals(getDestination()))
                    || (getDestination() != null && getDestination().equals(tracker.getDestination()));
            result &= (tracker.getUserUri() == null && getUserUri() == null)
                    || (tracker.getUserUri() != null && tracker.getUserUri().equals(getUserUri()))
                    || (getUserUri() != null && getUserUri().equals(tracker.getUserUri()));
            result &= tracker.getDefaultGraphs().equals(this.getDefaultGraphs());
            result &= tracker.getNamedGraphs().equals(this.getNamedGraphs());
            result &= tracker.getNamedDatasets().equals(this.getNamedDatasets());
        }
        return result;
    }

    @Override
    public int hashCode() {
        HashCodeBuilder builder = new HashCodeBuilder(1035, 263167);
        builder.append(getDestination());
        builder.append(getUserUri());
        builder.append(getDefaultGraphs());
        builder.append(getNamedGraphs());
        builder.append(getNamedDatasets());
        return builder.toHashCode();
    }
}