304 List<SegmentMember> members = new ArrayList<>();
305 for (Method m : MemorySegment.class.getDeclaredMethods()) {
306 //skip statics and method declared in j.l.Object
307 if (m.getDeclaringClass().equals(Object.class) ||
308 (m.getModifiers() & Modifier.STATIC) != 0) continue;
309 Object[] args = Stream.of(m.getParameterTypes())
310 .map(TestSegments::defaultValue)
311 .toArray();
312 members.add(new SegmentMember(m, args));
313 }
314 return members.stream().map(ms -> new Object[] { ms }).toArray(Object[][]::new);
315 }
316
317 static class SegmentMember {
318 final Method method;
319 final Object[] params;
320
321 final static List<String> CONFINED_NAMES = List.of(
322 "close",
323 "fill",
324 "toByteArray",
325 "withOwnerThread"
326 );
327
328 public SegmentMember(Method method, Object[] params) {
329 this.method = method;
330 this.params = params;
331 }
332
333 boolean isConfined() {
334 return CONFINED_NAMES.contains(method.getName());
335 }
336
337 @Override
338 public String toString() {
339 return method.getName();
340 }
341 }
342
343 static Object defaultValue(Class<?> c) {
|
304 List<SegmentMember> members = new ArrayList<>();
305 for (Method m : MemorySegment.class.getDeclaredMethods()) {
306 //skip statics and method declared in j.l.Object
307 if (m.getDeclaringClass().equals(Object.class) ||
308 (m.getModifiers() & Modifier.STATIC) != 0) continue;
309 Object[] args = Stream.of(m.getParameterTypes())
310 .map(TestSegments::defaultValue)
311 .toArray();
312 members.add(new SegmentMember(m, args));
313 }
314 return members.stream().map(ms -> new Object[] { ms }).toArray(Object[][]::new);
315 }
316
317 static class SegmentMember {
318 final Method method;
319 final Object[] params;
320
321 final static List<String> CONFINED_NAMES = List.of(
322 "close",
323 "fill",
324 "copyFrom",
325 "toByteArray",
326 "withOwnerThread"
327 );
328
329 public SegmentMember(Method method, Object[] params) {
330 this.method = method;
331 this.params = params;
332 }
333
334 boolean isConfined() {
335 return CONFINED_NAMES.contains(method.getName());
336 }
337
338 @Override
339 public String toString() {
340 return method.getName();
341 }
342 }
343
344 static Object defaultValue(Class<?> c) {
|