Compile Time Changes

  • Moved helper functions from abstract.office for storing info in ObjectFormatter's temp data to methods on ObjectFormatter.
/***************************************************************************
 * OLD
 ***************************************************************************/

/**
 * Put temp data to object formatter.
 */
public void putTemp(Object this, ObjectFormatter formatter, str k, Object v) {
    Object temp = formatter.getTemp(this);
    str->Object tempMap = temp.:str->Object;

    if (!tempMap) {
        tempMap = new str->Object();
        formatter.putTemp(this, tempMap);
    }

    tempMap.put(k, v);
}


/**
 * Get temp data from object formatter.
 */
public Object getTemp(Object this, ObjectFormatter formatter, str k) {
    if (?str->Object tempMap = formatter.getTemp(this)) {
        return tempMap.get(k);
    }

    return null;
}


/***************************************************************************
 * NEW
 ***************************************************************************/

/**
 * Put temporary prop data.
 */
final public void putTempProp(Object owner, str k, Object data) {
    if (!tempData) tempData = new Object->Object;
    
    ?str->Object map = tempData.get(owner);
    if (!map) {
        map = new str->Object;
        tempData.put(owner, map);
    }
    
    map.put(k, data);
}


/**
 * Get temporary data.
 */
final public Object getTempProp(Object owner, str k) {
    if (?str->Object map = tempData.?get(owner)) return map.get(k);
    return null;
}


/**
 * Remove temporary prop datas.
 */
final public void removeTempProp(Object owner, str k) {
    if (?str->Object map = tempData.?get(owner)) map.remove(k);
}