int arrayMemberValue(int pos, int num) throws Exception { ArrayMemberValue amv = new ArrayMemberValue(pool); MemberValue[] elements = new MemberValue[num]; for (int i = 0; i < num; ++i) { pos = memberValue(pos); elements[i] = currentMember; } amv.setValue(elements); currentMember = amv; return pos; } }
@Override int arrayMemberValue(int pos, int num) throws Exception { ArrayMemberValue amv = new ArrayMemberValue(pool); MemberValue[] elements = new MemberValue[num]; for (int i = 0; i < num; ++i) { pos = memberValue(pos); elements[i] = currentMember; } amv.setValue(elements); currentMember = amv; return pos; } }
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; }
@SuppressWarnings("all") public static MemberValue createMemberValue(Object value, ConstPool constPool) { MemberValue memberValue = null; if (value instanceof Integer) { memberValue = new IntegerMemberValue(constPool, ((Integer) value)); } else if (value instanceof Boolean) { memberValue = new BooleanMemberValue((Boolean) value, constPool); } else if (value instanceof Long) { memberValue = new LongMemberValue((Long) value, constPool); } else if (value instanceof String) { memberValue = new StringMemberValue((String) value, constPool); } else if (value instanceof Class) { memberValue = new ClassMemberValue(((Class) value).getName(), constPool); } else if (value instanceof Object[]) { Object[] arr = ((Object[]) value); ArrayMemberValue arrayMemberValue = new ArrayMemberValue(new ClassMemberValue(arr[0].getClass().getName(), constPool), constPool); arrayMemberValue.setValue(Arrays.stream(arr) .map(o -> createMemberValue(o, constPool)) .toArray(MemberValue[]::new)); memberValue = arrayMemberValue; } return memberValue; }
members[i] = createMemberValue(cp, arrayType, Array.get(value, i)); ((ArrayMemberValue) memberValue).setValue(members);
members[i] = createMemberValue(cp, arrayType, Array.get(value, i)); ((ArrayMemberValue) memberValue).setValue(members);
@Override public DynamicField href(boolean click, String... value) { Annotation annot = new Annotation(Href.class.getName(), cpool); annot.addMemberValue("click", new BooleanMemberValue(click, cpool)); ArrayMemberValue arrayMemberValue = new ArrayMemberValue(cpool); MemberValue[] memberValues = new StringMemberValue[value.length]; for(int i = 0; i < value.length; i++) { memberValues[i] = new StringMemberValue(value[i], cpool); } arrayMemberValue.setValue(memberValues); annot.addMemberValue("value", arrayMemberValue); attr.addAnnotation(annot); return this; }
@Override public DynamicField image(String download, String... value) { Annotation annot = new Annotation(Image.class.getName(), cpool); annot.addMemberValue("download", new StringMemberValue(download, cpool)); ArrayMemberValue arrayMemberValue = new ArrayMemberValue(cpool); MemberValue[] memberValues = new StringMemberValue[value.length]; for(int i = 0; i < value.length; i++) { memberValues[i] = new StringMemberValue(value[i], cpool); } arrayMemberValue.setValue(memberValues); annot.addMemberValue("value", arrayMemberValue); attr.addAnnotation(annot); return this; }
elementMatchUrls[i] = new StringMemberValue(matchUrl[i], cpool); arrayMemberValueMatchUrl.setValue(elementMatchUrls); annot.addMemberValue("matchUrl", arrayMemberValueMatchUrl); elements[i] = new StringMemberValue(pipelines[i], cpool); arrayMemberValue.setValue(elements); annot.addMemberValue("pipelines", arrayMemberValue);
int arrayMemberValue(int pos, int num) throws Exception { ArrayMemberValue amv = new ArrayMemberValue(pool); MemberValue[] elements = new MemberValue[num]; for (int i = 0; i < num; ++i) { pos = memberValue(pos); elements[i] = currentMember; } amv.setValue(elements); currentMember = amv; return pos; } }
int arrayMemberValue(int pos, int num) throws Exception { ArrayMemberValue amv = new ArrayMemberValue(pool); MemberValue[] elements = new MemberValue[num]; for (int i = 0; i < num; ++i) { pos = memberValue(pos); elements[i] = currentMember; } amv.setValue(elements); currentMember = amv; return pos; } }
public CtAnnotationBuilder addEnumMember(String name, Enum[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); EnumMemberValue[] members = new EnumMemberValue[values.length]; for (int i = 0; i < values.length; i++) { EnumMemberValue enumValue = new EnumMemberValue(constPool); enumValue.setType(values[i].getClass().getName()); enumValue.setValue(values[i].name()); members[i] = enumValue; } member.setValue(members); annotation.addMemberValue(name, member); return this; }
public CtAnnotationBuilder addAnnotationMember(String name, Annotation[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); AnnotationMemberValue[] members = new AnnotationMemberValue[values.length]; for (int i = 0; i < values.length; i++) { members[i] = new AnnotationMemberValue(values[i], constPool); } member.setValue(members); annotation.addMemberValue(name, member); return this; }
public CtAnnotationBuilder addIntegerMember(String name, int[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); IntegerMemberValue[] members = new IntegerMemberValue[values.length]; for (int i = 0; i < values.length; i++) { members[i] = new IntegerMemberValue(values[i], constPool); } member.setValue(members); annotation.addMemberValue(name, member); return this; }
public void addParameter(String name, String[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); StringMemberValue[] members = new StringMemberValue[values.length]; for (int i = 0; i < values.length; i++) members[i] = new StringMemberValue(values[i], constPool); member.setValue(members); annotation.addMemberValue(name, member); }
public CtAnnotationBuilder addBooleanMember(String name, boolean[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); BooleanMemberValue[] members = new BooleanMemberValue[values.length]; for (int i = 0; i < values.length; i++) { members[i] = new BooleanMemberValue(values[i], constPool); } member.setValue(members); annotation.addMemberValue(name, member); return this; }
public CtAnnotationBuilder addDoubleMember(String name, double[] values) { ArrayMemberValue member = new ArrayMemberValue(constPool); DoubleMemberValue[] members = new DoubleMemberValue[values.length]; for (int i = 0; i < values.length; i++) { members[i] = new DoubleMemberValue(values[i], constPool); } member.setValue(members); annotation.addMemberValue(name, member); return this; }
@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; }