Package com.dtrules.interpreter

Examples of com.dtrules.interpreter.RArray


        node.setList(new ArrayList<Object>());
      }else{
          node.getList().clear();
      }
     
        RArray result = (RArray) node.getTargetList();
        for(IRObject obj : result){
            Object value   = convert(obj);
            node.getList().add(value);
        }
       
View Full Code Here


      */
     static class Translate extends ROperator {
         Translate(){super("translate"); }
         public void execute(DTState state) throws RulesException {
             boolean duplicates = state.datapop().booleanValue();
             RArray  keys       = state.datapop().rArrayValue();
             RTable  table      = state.datapop().rTableValue();
             RArray valueArray = new RArray(state.getSession().getUniqueID(),duplicates,false);
             for(IRObject key : keys){
                 if(table.containsKey(key)){
                    valueArray.add(table.getValue(key));
                 }
             }
             state.datapush(valueArray);
         }
View Full Code Here

    }
   
    private void addTables(IRObject action,List<RArray> stack, List<RDecisionTable> tables){
        if(action==null)return;
        if(action.type()==iArray){
            RArray array = (RArray)action;
            if(stack.contains(array))return;    // We have already been here.
            stack.add(array);
            try {     // As this is an array, arrayValue() will not ever throw an exception
                @SuppressWarnings({"unchecked"})
                Iterator objects = array.arrayValue().iterator();
                while(objects.hasNext()){
                    addTables((IRObject) objects.next(),stack,tables);
                }
            } catch (RulesException e) { }
        }
View Full Code Here

    static class Remove extends ROperator {
      Remove() {super("remove");}
     
      public void execute(DTState state) throws RulesException {
        IRObject  value   = state.datapop();
        RArray    rarray  = (RArray)state.datapop();
                ArrayList array   = rarray.arrayValue();
                boolean removed = false;
                if(value!=null){
          for(int i=0; i<array.size();){
            if(value.equals((IRObject)array.get(i))){
                            if(state.testState(DTState.TRACE)){
                                state.traceInfo("removed", "arrayID",rarray.getID()+"",value.postFix());
                            }
              array.remove(i);
                            removed = true;
            } else {
              i++;
View Full Code Here

    static class Removeat extends ROperator {
      Removeat() {super("removeat");}
     
      public void execute(DTState state) throws RulesException {
        int position = state.datapop().intValue();
                RArray    rarray  = (RArray)state.datapop();
                if(position >= rarray.size()){
                    state.datapush(RBoolean.getRBoolean(false));
                }
               
                ArrayList array   = rarray.arrayValue();
                   if(state.testState(DTState.TRACE)){
                       state.traceInfo("removed", "arrayID",rarray.getID()+"","position",position+"",null);
                   }
               
                array.remove(position);       
                state.datapush(RBoolean.getRBoolean(true));
      }
View Full Code Here

       */   
    static class Newarray extends ROperator {
      Newarray() {super("newarray");}
     
      public void execute(DTState state) throws RulesException {
        IRObject irobject = new RArray(state.getSession().getUniqueID(),true, false);
        state.datapush(irobject);
      }
View Full Code Here

       */   
    static class Copyelements extends ROperator {
      Copyelements() {super("copyelements");}
     
      public void execute(DTState state) throws RulesException {
        RArray rarray     = state.datapop().rArrayValue();
        RArray newRArray  = rarray.clone(state.getSession()).rArrayValue();
        if(state.testState(DTState.TRACE)){
                  state.traceInfo("copyelements","id",rarray.getID()+"","newarrayid",newRArray.getID()+"",null);
            for(IRObject v : newRArray){
                      state.traceInfo("addto", "arrayID",rarray.getID()+"",v.postFix());
            }
                }
   
View Full Code Here

         */    
        static class DeepCopy extends ROperator {
            DeepCopy () {super("deepcopy");}
           
            public void execute(DTState state) throws RulesException {
                RArray rarray     = state.datapop().rArrayValue();
                RArray newRArray  = rarray.deepCopy(state.getSession()).rArrayValue();
               
                if(state.testState(DTState.TRACE)){
                    state.traceInfo("copyelements","id",rarray.getID()+"","newarrayid",newRArray.getID()+"",null);
                    for(IRObject v : newRArray){
                        state.traceInfo("addto", "arrayID",rarray.getID()+"",v.postFix());
                    }
                }
   
View Full Code Here

     
      public void execute(DTState state) throws RulesException {
        boolean asc  = state.datapop().booleanValue();
        int direction = asc ? 1 : -1;
       
        RArray rarray             = state.datapop().rArrayValue();
        ArrayList<IRObject> array = rarray.arrayValue();
       
                if(state.testState(DTState.TRACE)){
                   state.traceInfo("sort", "length",array.size()+"","arrayID",rarray.getID()+"",asc ? "true" : "false");
                }

        IRObject temp = null;
        int size = array.size();
        for(int i=0; i<size-1; i++){
View Full Code Here

      Sortentities() {super("sortentities");}
     
      public void execute(DTState state) throws RulesException {
        boolean asc  = state.datapop().booleanValue();
        RName rname = state.datapop().rNameValue();
        RArray rarray  = state.datapop().rArrayValue();
        ArrayList<IRObject> array = rarray.arrayValue();
        if(state.testState(DTState.TRACE)){
                 state.traceInfo("sortentities",
                         "length",   array.size()+"",
                         "by",       rname.stringValue(),
                         "arrayID",  rarray.getID()+"",
                         asc ? "true" : "false");
              }
        REntity temp = null;
        int size = array.size();
                int greaterthan = asc ? 1 : -1;
View Full Code Here

TOP

Related Classes of com.dtrules.interpreter.RArray

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.