public String encodeValues() throws EncodeException {
        StringBuilder res = new StringBuilder();
        if (this.values != null && this.values.length > 0) {
            for (Object value : this.values) {
                if (value instanceof Integer) {
                    res.append("int:");
                } else if (value instanceof Double) {
                    res.append("dbl:");
                } else if (value instanceof Character) {
                    res.append("chr:");
                } else if (value instanceof String) {
                    res.append("str:");
                } else if (value == null) {
                    res.append("nul:");
                } else {
                    throw new EncodeException("Unsupported variable type");
                }
            }
            res.replace(res.length()-1, res.length(), "");
            res.append("><");
            for (Object value : this.values) {
                res.append(value).append(':');
            }
            res.replace(res.length()-1, res.length(), "");
        } else {
            res.append("emp><");
        }
        return res.toString();
    }