/*
* Copyright (c) Corporation for National Research Initiatives
* Copyright (c) Jython Developers
*/
package org.python.core;
import java.io.Serializable;
import org.python.expose.ExposedMethod;
import org.python.expose.ExposedType;
/**
* The singleton None object.
*/
@ExposedType(name = "NoneType", isBaseType = false)
public class PyNone extends PyObject implements Serializable {
public static final PyType TYPE = PyType.fromClass(PyNone.class);
PyNone() {
super(TYPE);
}
@Override
public boolean __nonzero__() {
return false;
}
@Override
public Object __tojava__(Class<?> c) {
if (c == PyObject.class) {
return this;
}
if (c.isPrimitive()) {
return Py.NoConversion;
}
// Java gets null
return null;
}
@Override
public String toString() {
return NoneType_toString();
}
@ExposedMethod(names = "__repr__")
final String NoneType_toString() {
return "None";
}
@Override
public String asStringOrNull(int index) {
return null;
}
@Override
public String asStringOrNull() {
return null;
}
private Object writeReplace() {
return new Py.SingletonResolver("None");
}
}