@Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } });
protected Annotation getEntityListeners(ConstPool constantPool, Annotation existingEntityListeners, Annotation templateEntityListeners) { Annotation listeners = new Annotation(EntityListeners.class.getName(), constantPool); ArrayMemberValue listenerArray = new ArrayMemberValue(constantPool); Set<MemberValue> listenerMemberValues = new HashSet<>(); { ArrayMemberValue templateListenerValues = (ArrayMemberValue) templateEntityListeners.getMemberValue("value"); listenerMemberValues.addAll(Arrays.asList(templateListenerValues.getValue())); logger.debug("Adding template values to new EntityListeners"); } if (existingEntityListeners != null) { ArrayMemberValue oldListenerValues = (ArrayMemberValue) existingEntityListeners.getMemberValue("value"); listenerMemberValues.addAll(Arrays.asList(oldListenerValues.getValue())); logger.debug("Adding previous values to new EntityListeners"); } listenerArray.setValue(listenerMemberValues.toArray(new MemberValue[listenerMemberValues.size()])); listeners.addMemberValue("value", listenerArray); return listeners; }
@Override public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] nestedValues = node.getValue(); for (MemberValue v : nestedValues) { v.accept(new ListingMemberValueVisitor(values) { @Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } }); } }
if (typeName.equals(DirectCopyTransform.class.getName())) { ArrayMemberValue arrayMember = (ArrayMemberValue) annotation.getMemberValue("value"); for (MemberValue arrayMemberValue : arrayMember.getValue()) { AnnotationMemberValue member = (AnnotationMemberValue) arrayMemberValue; Annotation memberAnnot = member.getValue(); ArrayMemberValue annot = (ArrayMemberValue) memberAnnot.getMemberValue("templateTokens"); List<String> addedTemplates = new ArrayList<>(); for (MemberValue memberValue : annot.getValue()) { String val = ((StringMemberValue) memberValue).getValue(); addedTemplates.addAll(reviewTemplateTokens(matchedPatterns, val));
@Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } });
@Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } });
public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] values = node.getValue(); value = node.getValue(); Object vals = Array.newInstance(getAttributeType(), values.length); for (int i = 0 ; i < values.length ; i++) { values[i].accept(this); Array.set(vals, i, value); } value = vals; }
public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] values = node.getValue(); value = node.getValue(); Object vals = Array.newInstance(getAttributeType(), values.length); for (int i = 0 ; i < values.length ; i++) { values[i].accept(this); Array.set(vals, i, value); } value = vals; }
public void visitArrayMemberValue(ArrayMemberValue arrayMemberValue) { Class baseType = type.getComponentType(); int size = 0; if (arrayMemberValue.getValue() != null) { size = arrayMemberValue.getValue().length; } value = Array.newInstance(baseType, size); MemberValue[] elements = arrayMemberValue.getValue(); for (int i = 0; i < size; i++) { ProxyMapCreator creator = new ProxyMapCreator(baseType); elements[i].accept(creator); Array.set(value, i, creator.value); } }
public void visitArrayMemberValue(ArrayMemberValue arrayMemberValue) { Class<?> baseType = type.getComponentType(); int size = 0; if (arrayMemberValue.getValue() != null) { size = arrayMemberValue.getValue().length; } value = Array.newInstance(baseType, size); MemberValue[] elements = arrayMemberValue.getValue(); for (int i = 0; i < size; i++) { ProxyMapCreator creator = new ProxyMapCreator(baseType); elements[i].accept(creator); Array.set(value, i, creator.value); } }
@Nonnull private static Iterable<Annotation> getAnnotationsFrom(@Nonnull Annotation annotation, @Nonnull String memberName) { MemberValue memberValue = annotation.getMemberValue(memberName); if (memberValue == null) { return emptyList(); } checkState(ArrayMemberValue.class.isInstance(memberValue), "The member [" + memberName + "] is no ArrayMemberValue!"); MemberValue[] nestedMembers = ArrayMemberValue.class.cast(memberValue).getValue(); return filter(transform(asList(nestedMembers), new Function<MemberValue, Annotation>() { @Override public Annotation apply(@Nullable MemberValue memberValue) { return memberValue == null ? null : AnnotationMemberValue.class.cast(memberValue).getValue(); } }), notNull()); }
@Override public void visitArrayMemberValue(ArrayMemberValue node) { ArrayMemberValue val = new ArrayMemberValue(node.getType(), constPool); MemberValue[] newVals = new MemberValue[node.getValue().length]; for (int i = 0; i < node.getValue().length; ++i) { node.getValue()[i].accept(new ArrayIndexAssigningVisitor(newVals, i, constPool)); } val.setValue(newVals); array[index] = val; }
static private void removeValue(ArrayMemberValue memberValue, String value){ List<MemberValue> values = new ArrayList<>(Arrays.asList(memberValue.getValue())); boolean removed = false; Iterator<MemberValue> it = values.iterator(); while(it.hasNext()){ StringMemberValue stringValue = (StringMemberValue)it.next(); if((value).equals(stringValue.getValue())){ it.remove(); removed = true; } } if(!removed){ throw new RuntimeException(value + " not in " + values); } memberValue.setValue(values.toArray(new MemberValue[values.size()])); }
@Override public void visitArrayMemberValue(ArrayMemberValue node) { ArrayMemberValue val = new ArrayMemberValue(node.getType(), constPool); MemberValue[] newVals = new MemberValue[node.getValue().length]; for (int i = 0; i < node.getValue().length; ++i) { node.getValue()[i].accept(new ArrayIndexAssigningVisitor(newVals, i, constPool)); } val.setValue(newVals); array[index] = val; }
@Override public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] nestedValues = node.getValue(); for (MemberValue v : nestedValues) { v.accept(new ListingMemberValueVisitor(values) { @Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } }); } }
@Override public void visitArrayMemberValue(ArrayMemberValue node) { MemberValue[] nestedValues = node.getValue(); for (MemberValue v : nestedValues) { v.accept(new ListingMemberValueVisitor(values) { @Override public void visitArrayMemberValue(ArrayMemberValue node) { values.add(Arrays.toString(node.getValue())); } }); } }
private String dataForMemberValue(final MemberValue memberValue) { if (memberValue instanceof StringMemberValue) { return ((StringMemberValue) memberValue).getValue(); } else if (memberValue instanceof ClassMemberValue) { return ((ClassMemberValue) memberValue).getValue(); } else if (memberValue instanceof ArrayMemberValue) { final MemberValue[] entryValues = ((ArrayMemberValue) memberValue).getValue(); final Iterable<String> entryData = transform(copyOf(entryValues), new Function<MemberValue, String>() { @Override public String apply(@Nullable final MemberValue entryValue) { return dataForMemberValue(entryValue); } }); return ARRAY_MEMBER_VALUE_JOINER.join(entryData); } else { // This branch is entered if memberValue is null, which happens when the annoation value is being defaulted. // The non-null branch is preserving legacy behaviour, as far as i can see no non null values not handled by previous // branches of the if can be generated by current code. return memberValue == null ? null : removeQuotes(memberValue.toString()); } }
private static CtClass[] getArgTypes(ClassPool cp, ReflectionAccessor reflectionAccessor) throws NotFoundException { Annotation annotation = AnnotationUtil.unwrapAnnotation(reflectionAccessor); ArrayMemberValue argTypesMember = (ArrayMemberValue)annotation.getMemberValue("argTypes"); if (argTypesMember == null) return null; MemberValue[] values = argTypesMember.getValue(); if (values.length == 1 && ((ClassMemberValue)values[0]).getValue().equals(NoArgs.class.getName())) return null; CtClass[] ret = new CtClass[values.length]; for (int i=0; i<values.length; i++) { ret[i] = cp.get(((ClassMemberValue)values[i]).getValue()); } return ret; }