public InputPipeInvocationHandler(Pipe pipe, int msgIdx, Class<?> clazz) { super(clazz.getMethods()); FieldReferenceOffsetManager from = Pipe.from(pipe); final Method[] methods = clazz.getMethods(); readers = new InputPipeReaderMethod[MAX_METHODS]; int j = methods.length; while (--j>=0) { final Method method = methods[j]; ProngTemplateField fieldAnnotation = method.getAnnotation(ProngTemplateField.class); if (null!=fieldAnnotation) { int fieldLoc = FieldReferenceOffsetManager.lookupFieldLocator(fieldAnnotation.fieldId(), msgIdx, from); int key = buildKey(this, method.getName()); if (null!=readers[key]) { throw new UnsupportedOperationException(); } readers[key] = InputPipeReaderMethod.buildReadForYourType(pipe, fieldLoc, (fieldLoc >> FieldReferenceOffsetManager.RW_FIELD_OFF_BITS) & TokenBuilder.MASK_TYPE, from); } } }
public InputPipeInvocationHandler(Pipe pipe, int msgIdx, Class<?> clazz) { super(clazz.getMethods()); FieldReferenceOffsetManager from = Pipe.from(pipe); final Method[] methods = clazz.getMethods(); readers = new InputPipeReaderMethod[MAX_METHODS]; int j = methods.length; while (--j>=0) { final Method method = methods[j]; ProngTemplateField fieldAnnotation = method.getAnnotation(ProngTemplateField.class); if (null!=fieldAnnotation) { int fieldLoc = FieldReferenceOffsetManager.lookupFieldLocator(fieldAnnotation.fieldId(), msgIdx, from); int key = buildKey(this, method.getName()); if (null!=readers[key]) { throw new UnsupportedOperationException(); } readers[key] = InputPipeReaderMethod.buildReadForYourType(pipe, fieldLoc, (fieldLoc >> FieldReferenceOffsetManager.RW_FIELD_OFF_BITS) & TokenBuilder.MASK_TYPE, from); } } }
public InputPipeInvocationHandler(Pipe pipe, int msgIdx, Class<?> clazz) { super(clazz.getMethods()); FieldReferenceOffsetManager from = Pipe.from(pipe); final Method[] methods = clazz.getMethods(); readers = new InputPipeReaderMethod[MAX_METHODS]; int j = methods.length; while (--j>=0) { final Method method = methods[j]; ProngTemplateField fieldAnnotation = method.getAnnotation(ProngTemplateField.class); if (null!=fieldAnnotation) { int fieldLoc = FieldReferenceOffsetManager.lookupFieldLocator(fieldAnnotation.fieldId(), msgIdx, from); int key = buildKey(this, method.getName()); if (null!=readers[key]) { throw new UnsupportedOperationException(); } readers[key] = InputPipeReaderMethod.buildReadForYourType(pipe, fieldLoc, (fieldLoc >> FieldReferenceOffsetManager.RW_FIELD_OFF_BITS) & TokenBuilder.MASK_TYPE, from); } } }