/** * updates all the fields in {@code this} that are null, from the {@param parentBuilder} * * @param parentBuilder the parentBuilder Chronicle Queue Builder * @return that */ public SingleChronicleQueueBuilder setAllNullFields(@Nullable SingleChronicleQueueBuilder parentBuilder) { if (parentBuilder == null) return this; if (!(this.getClass().isAssignableFrom(parentBuilder.getClass()) || parentBuilder.getClass().isAssignableFrom(this.getClass()))) throw new IllegalArgumentException("Classes are not in same implementation hierarchy"); List<FieldInfo> sourceFieldInfo = Wires.fieldInfos(parentBuilder.getClass()); for (final FieldInfo fieldInfo : Wires.fieldInfos(this.getClass())) { if (!sourceFieldInfo.contains(fieldInfo)) continue; Object resultV = fieldInfo.get(this); Object parentV = fieldInfo.get(parentBuilder); if (resultV == null && parentV != null) fieldInfo.set(this, parentV); } return this; }
private void addColumns(@NotNull Row row, final Class type, final String defaultColumnName, final Object item) { final List<FieldInfo> fieldInfos = Wires.fieldInfos(type); if (fieldInfos.isEmpty()) { row.set(defaultColumnName, item); } else { @NotNull final Marshallable value = (Marshallable) item; for (@NotNull final FieldInfo info : fieldInfos) { if (!columnNames().contains(info.name())) continue; try { final Object newValue = info.get(value); row.set(info.name(), newValue); } catch (Exception e1) { Jvm.warn().on(VanillaMapView.class, e1); } } } } };
@NotNull @Override public List<Column> columns() { @NotNull List<Column> result = new ArrayList<>(); result.add(new Column("index", true, true, "", String.class, false)); for (@NotNull final FieldInfo fi : fieldInfos(messageClass)) { result.add(new Column(fi.name(), false, false, "", fi.type(), false)); } return result; }
continue; FieldInfo fi = Wires.fieldInfo(valueType, e.getKey()); fi.set(v, e.getValue());
@Nullable private List<String> columnNames() { if (columnNames != null) return columnNames; @NotNull LinkedHashSet<String> result = new LinkedHashSet<>(); result.add("index"); // if (Marshallable.class.isAssignableFrom(messageClass)) { for (@NotNull final FieldInfo fi : fieldInfos(messageClass)) { result.add(fi.name()); } // } columnNames = new ArrayList<>(result); return columnNames; }
final Class valueClass = entry.getValue().getClass(); final FieldInfo info = Wires.fieldInfo(valueClass, f.columnName); final Object o = info.get(entry.getValue());
@NotNull @Override public List<Column> columns() { @NotNull List<Column> result = new ArrayList<>(); if ((Marshallable.class.isAssignableFrom(keyType()))) { for (@NotNull final FieldInfo info : Wires.fieldInfos(keyType())) { result.add(new Column(info.name(), true, true, "", info.type(), true)); } } else { result.add(new Column("key", true, true, "", keyType(), true)); } boolean isReadOnly = requestContext.toUri().startsWith("/proc"); if ((Marshallable.class.isAssignableFrom(valueType()))) { //valueType.isAssignableFrom() for (@NotNull final FieldInfo info : Wires.fieldInfos(valueType())) { result.add(new Column(info.name(), isReadOnly, false, "", info.type(), true)); } } else { result.add(new Column("value", isReadOnly, false, "", valueType(), true)); } return result; }
@Nullable private ArrayList<String> columnNames() { if (columnNames != null) return columnNames; @NotNull LinkedHashSet<String> result = new LinkedHashSet<>(); if ((Marshallable.class.isAssignableFrom(keyType()))) { for (@NotNull final FieldInfo fi : Wires.fieldInfos(keyType())) { result.add(fi.name()); } } else result.add("key"); if (Marshallable.class.isAssignableFrom(valueType())) { for (@NotNull final FieldInfo fi : Wires.fieldInfos(valueType())) { result.add(fi.name()); } } else { result.add("value"); } columnNames = new ArrayList<>(result); return columnNames; }
/** * updates all the fields in {@code this} that are null, from the {@param parentBuilder} * * @param parentBuilder the parentBuilder Chronicle Queue Builder * @return that */ public SingleChronicleQueueBuilder setAllNullFields(@Nullable SingleChronicleQueueBuilder parentBuilder) { if (parentBuilder == null) return this; if (!(this.getClass().isAssignableFrom(parentBuilder.getClass()) || parentBuilder.getClass().isAssignableFrom(this.getClass()))) throw new IllegalArgumentException("Classes are not in same implementation hierarchy"); List<FieldInfo> sourceFieldInfo = Wires.fieldInfos(parentBuilder.getClass()); for (final FieldInfo fieldInfo : Wires.fieldInfos(this.getClass())) { if (!sourceFieldInfo.contains(fieldInfo)) continue; Object resultV = fieldInfo.get(this); Object parentV = fieldInfo.get(parentBuilder); if (resultV == null && parentV != null) fieldInfo.set(this, parentV); } return this; }
final Object o = info.get(message);