Changeset 138:bbb2193140a8 in livinglogic.java.ul4

Show
Ignore:
Timestamp:
07/09/08 16:41:46 (11 years ago)
Author:
Walter Doerwald <walter@…>
Branch:
default
Message:

The org.apache.commons package is now used to implement some of the operations.

Files:
1 added
11 modified

Legend:

Unmodified
Added
Removed
  • docs/versiondoc.txt

    r136 r138  
     1HEAD: 
     2------ 
     3Comments: 
     4* The org.apache.commons package is now used to implement some of the operations. 
     5 
     6 
    17exp-2: 
    28------ 
  • library/build.xml

    r120 r138  
    2828            <classpath> 
    2929                <pathelement path="jython.jar" /> 
     30                <pathelement path="commons-lang-2.4.jar" /> 
    3031                <pathelement path="${classpath}" /> 
    3132                <pathelement location="${build}" /> 
  • library/src/com/livinglogic/ul4/Const.java

    r116 r138  
    1010    abstract public int getType(); 
    1111 
     12    abstract public Object getValue(); 
     13 
    1214    public int compile(Template template, Registers registers, Location location) 
    1315    { 
  • library/src/com/livinglogic/ul4/False.java

    r116 r138  
    1818    } 
    1919 
     20    public Object getValue() 
     21    { 
     22        return Boolean.FALSE; 
     23    } 
     24 
    2025    public String toString() 
    2126    { 
  • library/src/com/livinglogic/ul4/Float.java

    r116 r138  
    1616    } 
    1717 
     18    public Object getValue() 
     19    { 
     20        return new Double(value); 
     21    } 
     22 
    1823    public int compile(Template template, Registers registers, Location location) 
    1924    { 
  • library/src/com/livinglogic/ul4/Int.java

    r116 r138  
    1616    } 
    1717 
     18    public Object getValue() 
     19    { 
     20        return new Integer(value); 
     21    } 
     22 
    1823    public int compile(Template template, Registers registers, Location location) 
    1924    { 
  • library/src/com/livinglogic/ul4/None.java

    r116 r138  
    1818    } 
    1919 
     20    public Object getValue() 
     21    { 
     22        return null; 
     23    } 
     24 
    2025    public String toString() 
    2126    { 
  • library/src/com/livinglogic/ul4/Str.java

    r116 r138  
    11package com.livinglogic.ul4; 
    22 
    3 public class Str extends AST 
     3public class Str extends Const 
    44{ 
    55    protected String value; 
     
    1111    } 
    1212 
     13    public int getType() 
     14    { 
     15        return Opcode.OC_LOADSTR; 
     16    } 
     17 
    1318    public String getTokenType() 
    1419    { 
    1520        return "str"; 
     21    } 
     22 
     23    public Object getValue() 
     24    { 
     25        return value; 
    1626    } 
    1727 
  • library/src/com/livinglogic/ul4/Template.java

    r136 r138  
    1717import java.util.regex.Pattern; 
    1818import java.util.regex.Matcher; 
     19import org.apache.commons.lang.ObjectUtils; 
    1920 
    2021public class Template 
     
    907908                            return; 
    908909                        case Opcode.OC_PRINT: 
    909                             nextChunk = Utils.toString(reg[code.r1]); 
     910                            nextChunk = ObjectUtils.toString(reg[code.r1]); 
    910911                            ++pc; 
    911912                            return; 
     
    10451046                            break; 
    10461047                        case Opcode.OC_EQ: 
    1047                             reg[code.r1] = Utils.eq(reg[code.r2], reg[code.r3]) ? Boolean.TRUE : Boolean.FALSE; 
     1048                            reg[code.r1] = ObjectUtils.equals(reg[code.r2], reg[code.r3]) ? Boolean.TRUE : Boolean.FALSE; 
    10481049                            break; 
    10491050                        case Opcode.OC_NE: 
    1050                             reg[code.r1] = Utils.eq(reg[code.r2], reg[code.r3]) ? Boolean.FALSE : Boolean.TRUE; 
     1051                            reg[code.r1] = ObjectUtils.equals(reg[code.r2], reg[code.r3]) ? Boolean.FALSE : Boolean.TRUE; 
    10511052                            break; 
    10521053                        case Opcode.OC_LT: 
     
    11041105                                    break; 
    11051106                                case Opcode.CF1_STR: 
    1106                                     reg[code.r1] = Utils.toString(reg[code.r2]); 
     1107                                    reg[code.r1] = ObjectUtils.toString(reg[code.r2]); 
    11071108                                    break; 
    11081109                                case Opcode.CF1_INT: 
  • library/src/com/livinglogic/ul4/True.java

    r116 r138  
    1818    } 
    1919 
     20    public Object getValue() 
     21    { 
     22        return Boolean.TRUE; 
     23    } 
     24 
    2025    public String toString() 
    2126    { 
  • library/src/com/livinglogic/ul4/Utils.java

    r130 r138  
    1313import java.util.Date; 
    1414import java.text.SimpleDateFormat; 
     15import org.apache.commons.lang.StringUtils; 
    1516 
    1617class Range extends AbstractList 
     
    237238    public static Object mul(String arg1, Integer arg2) 
    238239    { 
    239         return mul(arg2, arg1); 
     240        return StringUtils.repeat(arg1, arg2.intValue()); 
    240241    } 
    241242 
    242243    public static Object mul(Integer arg1, String arg2) 
    243244    { 
    244         int count = arg1.intValue(); 
    245         StringBuffer retValBuffer = new StringBuffer(count * arg2.length()); 
    246         for (int i = 0; i < count; i++) 
    247         { 
    248             retValBuffer.append(arg2); 
    249         } 
    250         return retValBuffer.toString(); 
     245        return StringUtils.repeat(arg2, arg1.intValue()); 
    251246    } 
    252247 
     
    409404    public static Object getSlice(String arg1, Integer arg2, Integer arg3) 
    410405    { 
    411         int size = arg1.length(); 
    412         int start = getSliceStartPos(size, arg2); 
    413         int end = getSliceEndPos(size, arg3); 
    414         if (end < start) 
    415             end = start; 
    416         return arg1.substring(start, end); 
     406        return StringUtils.substring(arg1, arg2, arg3); 
    417407    } 
    418408 
     
    480470            return getBool((Map)obj); 
    481471        return true; 
    482     } 
    483  
    484     public static boolean eq(Object obj1, Object obj2) 
    485     { 
    486         if (null != obj1) 
    487             return obj1.equals(obj2); 
    488         else 
    489             return (null == obj2); 
    490472    } 
    491473 
     
    585567    } 
    586568 
    587     public static String toString(Object obj) 
    588     { 
    589         return obj != null ? obj.toString() : ""; 
    590     } 
    591  
    592569    public static Object toInteger(String obj) 
    593570    {