/**
*
*/
package de.zib.scalaris;
import com.ericsson.otp.erlang.OtpErlangAtom;
import com.ericsson.otp.erlang.OtpErlangList;
/**
* Stores the result of a delete operation.
*
* @author Nico Kruber, kruber@zib.de
* @version 2.2
* @since 2.2
*
* @see Scalaris#delete(String)
*/
public class DeleteResult {
/**
* Number of successfully deleted replicas.
*/
public int ok = 0;
/**
* Skipped replicas because locks were set.
*/
public int locks_set = 0;
/**
* Skipped replicas because they did not exist.
*/
public int undef = 0;
/**
* Creates a delete state object by converting the result list returned from
* erlang.
*
* @param list
* the list to convert
* @throws UnknownException
* is thrown if an unknown reason was encountered
*/
public DeleteResult(OtpErlangList list) throws UnknownException {
if (list != null) {
for (int i = 0; i < list.arity(); ++i) {
OtpErlangAtom element = (OtpErlangAtom) list.elementAt(i);
if (element.equals(new OtpErlangAtom("ok"))) {
++ok;
} else if (element.equals(new OtpErlangAtom("locks_set"))) {
++locks_set;
} else if (element.equals(new OtpErlangAtom("undef"))) {
++undef;
} else {
throw new UnknownException("Unknow reason: "
+ element.atomValue());
}
}
}
}
}