} else if (od.isNew()){
} else if (od.isInfantile()){
    PropertyData fetchPropertyData(Object obj, Property prop) {        ObjectData od = fetchObjectData(obj);        if (od == null) {            throw new IllegalArgumentException("No such object: " + obj);        }        PropertyData pd;        if (od.hasPropertyData(prop)) {            pd = od.getPropertyData(prop);        } else if (prop.isCollection()) {            pd = new PropertyData                (od, prop, POS.getPersistentCollection                 (this, new DataSet(this, m_qs.getQuery(obj, prop))));        } else if (od.isNew()){            pd = new PropertyData(od, prop, null);        } else {            RecordSet rs = m_engine.execute(m_qs.getQuery(obj, prop));            Map values = null;            if (rs.next()) {                values = rs.load(this);            }	    if (rs.next()) {		throw new IllegalStateException		    ("Query returned too many rows");	    }            if (prop.getType().isKeyed()) {		if (values == null) {		    load(obj, prop, null);		} else {		    load(obj, prop, values.get(null));		}            } else if (values == null) {                throw new IllegalStateException                    ("Query failed to return any results");	    }            pd = od.getPropertyData(prop);            if (pd == null) {                throw new IllegalStateException                    ("Query failed to retrieve property");            }        }        return pd;    }