@Override public FieldValue createFieldValue(Object o) { Struct struct; if (o.getClass().equals(Struct.class)) { struct = new Struct(this); } else { // This indicates for example that o is a generated struct subtype, try the empty constructor try { struct = (Struct) o.getClass().getConstructor().newInstance(); } catch (Exception e) { // Fallback, let assign handle the error if o is completely bogus struct = new Struct(this); } } struct.assign(o); return struct; }
private void assignPositionFieldFromStringIfNonEmpty(Struct value, String elementText, boolean base64) { String str = base64 ? Utf8.toString(new Base64().decode(elementText)) : elementText; str = str.trim(); if (str.isEmpty()) { return; } DataType valueType = value.getDataType(); if (valueType.equals(PositionDataType.INSTANCE)) { value.assign(PositionDataType.fromString(str)); } }