blob: 4d35361679c2983b2d1588f7e3a762cb1eebd2cd [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2000, 2011 IBM Corporation 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
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdi.internal.request;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import org.eclipse.jdi.internal.MirrorImpl;
public class RequestID {
/**
* Null request ID, returned by Virtual Machine in events that were not
* requested.
*/
private static final int NULL_REQUEST_ID = 0;
public static final RequestID nullID = new RequestID(NULL_REQUEST_ID);
/** Integer representation of request ID. */
private int fRequestID;
/**
* Creates new request ID.
*/
private RequestID(int ID) {
fRequestID = ID;
}
/**
* @return Returns whether the request ID is a NULL ID, which means that
* there is no corresponding request.
*/
public boolean isNull() {
return fRequestID == NULL_REQUEST_ID;
}
/**
* @return Returns true if two RequestIDs are the same.
* @see java.lang.Object#equals(Object)
*/
@Override
public boolean equals(Object object) {
return object != null && object.getClass().equals(this.getClass())
&& fRequestID == ((RequestID) object).fRequestID;
}
/**
* @return Returns a has code for this object.
* @see java.lang.Object#hashCode
*/
@Override
public int hashCode() {
return fRequestID;
}
/**
* @return Returns string representation.
*/
@Override
public String toString() {
return new Long(fRequestID).toString();
}
/**
* Writes IDto stream.
*/
public void write(MirrorImpl target, DataOutputStream out)
throws IOException {
target.writeInt(fRequestID, "request ID", out); //$NON-NLS-1$
}
/**
* @return Returns a new request ID read from stream.
*/
public static RequestID read(MirrorImpl target, DataInputStream in)
throws IOException {
int result = target.readInt("request ID", in); //$NON-NLS-1$
return new RequestID(result);
}
}