- Timestamp:
- 07/08/13 23:04:56 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
java/main/src/main/java/com/framsticks/params/ArrayListAccess.java
r90 r98 1 1 package com.framsticks.params; 2 2 3 import com.framsticks.util.UnimplementedException; 3 4 import com.framsticks.util.lang.Numbers; 4 5 5 6 import java.util.ArrayList; 6 import java.util.Collection; 7 import java.util.LinkedList; 7 import java.util.Iterator; 8 8 import java.util.List; 9 import java.util.ListIterator; 9 10 10 11 /** … … 30 31 31 32 @Override 32 public Param getParam(int i) { 33 //TODO listAccessParam 34 return Param.build().id(Integer.toString(i)).forAccess(elementAccess).finish(); 33 public CompositeParam getParam(int i) { 34 if ((i < 0) || (i >= list.size())) { 35 return null; 36 } 37 return Param.build().id(Integer.toString(i)).forAccess(elementAccess).finish(CompositeParam.class); 35 38 } 36 39 37 40 @Override 38 public Param getParam(String id) {41 public CompositeParam getParam(String id) { 39 42 Integer i = Numbers.parse(id, Integer.class); 40 43 return (i == null ? null : getParam(i)); … … 53 56 @Override 54 57 public <T> T get(int i, Class<T> type) { 55 if ( i < list.size()) {56 return type.cast(list.get(i));58 if ((i < 0) || (i >= list.size())) { 59 return null; 57 60 } 58 return null;61 return type.cast(list.get(i)); 59 62 } 60 63 … … 112 115 113 116 @Override 114 public Collection<Param> getParams() { 115 List<Param> result = new LinkedList<Param>(); 116 if (list == null) { 117 return result; 118 } 119 for (int i = 0; i < list.size(); ++i) { 120 result.add(getParam(i)); 121 } 122 return result; 117 public Iterable<Param> getParams() { 118 return new Iterable<Param>() { 119 120 @Override 121 public Iterator<Param> iterator() { 122 return new Iterator<Param>() { 123 124 protected ListIterator<Object> internal = list.listIterator(); 125 126 @Override 127 public boolean hasNext() { 128 return internal.hasNext(); 129 } 130 131 @Override 132 public Param next() { 133 Param param = Param.build().id(Integer.toString(internal.nextIndex())).forAccess(elementAccess).finish(); 134 internal.next(); 135 return param; 136 } 137 138 @Override 139 public void remove() { 140 throw new UnimplementedException().msg("remove element from list").arg("list", ArrayListAccess.this); 141 142 } 143 }; 144 } 145 }; 146 } 147 148 @Override 149 public int getCompositeParamCount() { 150 return list.size(); 151 } 152 153 @Override 154 public CompositeParam getCompositeParam(int number) { 155 return getParam(number); 123 156 } 124 157
Note: See TracChangeset
for help on using the changeset viewer.