@SuppressWarnings("unchecked") @Override public <T, U> U getValue(T element) { return ((U) ((Object) (castTarget(element).getIndexExpression()))); }
/** * Gets the index of a one-dimension array (helper). */ @SuppressWarnings("unchecked") public static Integer getIndex(CtExpression<?> e) { if (e.getParent() instanceof CtArrayAccess) { CtExpression<Integer> indexExpression = ((CtArrayAccess<?, CtExpression<Integer>>) e.getParent()).getIndexExpression(); return ((CtLiteral<Integer>) indexExpression).getValue(); } return null; }
/** * for input `element` expression `X` in expression `X[Y]` it returns expression `X[Y]` * and registers extra {@link ListParameterInfo} to the parameter assigned to `X` * @param pep pair of parameter and element which has to be transformed * @return */ private ParameterElementPair transformArrayAccess(ParameterElementPair pep) { CtElement element = pep.element; if (element.isParentInitialized()) { CtElement parent = element.getParent(); if (parent instanceof CtArrayAccess<?, ?>) { CtArrayAccess<?, ?> arrayAccess = (CtArrayAccess<?, ?>) parent; CtExpression<?> expr = arrayAccess.getIndexExpression(); if (expr instanceof CtLiteral<?>) { CtLiteral<?> idxLiteral = (CtLiteral<?>) expr; Object idx = idxLiteral.getValue(); if (idx instanceof Number) { return new ParameterElementPair(new ListParameterInfo(((Number) idx).intValue(), pep.parameter), arrayAccess); } } } } return pep; }
private <T, E extends CtExpression<?>> void printCtArrayAccess(CtArrayAccess<T, E> arrayAccess) { enterCtExpression(arrayAccess); scan(arrayAccess.getTarget()); printer.writeSeparator("["); scan(arrayAccess.getIndexExpression()); printer.writeSeparator("]"); exitCtExpression(arrayAccess); }
/** * Gets the index of a one-dimension array (helper). */ @SuppressWarnings("unchecked") public static Integer getIndex(CtExpression<?> e) { if (e.getParent() instanceof CtArrayAccess) { CtExpression<Integer> indexExpression = ((CtArrayAccess<?, CtExpression<Integer>>) e.getParent()).getIndexExpression(); return ((CtLiteral<Integer>) indexExpression).getValue(); } return null; }
public <T, E extends CtExpression<?>> void visitCtArrayAccess( CtArrayAccess<T, E> arrayAccess) { scan(arrayAccess.getTarget()); write("["); scan(arrayAccess.getIndexExpression()); write("]"); }
public <T, E extends CtExpression<?>> void visitCtArrayAccess(CtArrayAccess<T, E> arrayAccess) { enterCtExpression(arrayAccess); scan(arrayAccess.getTarget()); write("[").scan(arrayAccess.getIndexExpression()).write("]"); exitCtExpression(arrayAccess); }
public <T, E extends CtExpression<?>> void visitCtArrayAccess( CtArrayAccess<T, E> arrayAccess) { enter(arrayAccess); scan(arrayAccess.getAnnotations()); scan(arrayAccess.getType()); scanReferences(arrayAccess.getTypeCasts()); scan(arrayAccess.getTarget()); scan(arrayAccess.getIndexExpression()); exit(arrayAccess); }