static boolean tryWriteWithoutCause(Output output, Object value, Schema<Object> schema) throws IOException { if (schema instanceof RuntimeSchema && __cause != null) { // ignore the field "cause" if its references itself (cyclic) final RuntimeSchema<Object> ms = (RuntimeSchema<Object>) schema; if (ms.getFieldCount() > 1 && ms.getFields().get(1).name.equals("cause")) { final Object cause; try { cause = __cause.get(value); } catch (Exception e) { throw new RuntimeException(e); } if (cause == value) { // its cyclic, skip the second field "cause" ms.getFields().get(0).writeTo(output, value); for (int i = 2, len = ms.getFieldCount(); i < len; i++) ms.getFields().get(i).writeTo(output, value); return true; } } } return false; }
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<>(typeClass, fields, rs.instantiator);
static boolean tryWriteWithoutCause(Output output, Object value, Schema<Object> schema) throws IOException { if (schema instanceof RuntimeSchema && __cause != null) { // ignore the field "cause" if its references itself (cyclic) final RuntimeSchema<Object> ms = (RuntimeSchema<Object>) schema; if (ms.getFieldCount() > 1 && ms.getFields().get(1).name.equals("cause")) { final Object cause; try { cause = __cause.get(value); } catch (Exception e) { throw new RuntimeException(e); } if (cause == value) { // its cyclic, skip the second field "cause" ms.getFields().get(0).writeTo(output, value); for (int i = 2, len = ms.getFieldCount(); i < len; i++) ms.getFields().get(i).writeTo(output, value); return true; } } } return false; }
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<>(typeClass, fields, rs.instantiator);
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<Field<T>>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<T>(typeClass, fields, rs.instantiator);
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<Field<T>>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<T>(typeClass, fields, rs.instantiator);
@Test public void testEntityWithFieldAlias() { RuntimeSchema<EntityWithFieldAlias> schema = (RuntimeSchema<EntityWithFieldAlias>) RuntimeSchema .getSchema(EntityWithFieldAlias.class, RuntimeEnv.ID_STRATEGY); assertTrue(schema.getFieldCount() == 2); // The field with the smallest field number will be written first. // In this case, field200 (despite field400 being declared 1st) verify(schema, 200, "f200", 0); verify(schema, 400, "field400", 1); }
@Test public void testEmptyFieldsPojo() { RuntimeSchema<EmptyFieldsPojo> schema = RuntimeSchema.createFrom(EmptyFieldsPojo.class, RuntimeEnv.ID_STRATEGY); Assert.assertNotNull(schema); Assert.assertEquals(0, schema.getFieldCount()); }
@Test public void testEntityFullyAnnotated() { RuntimeSchema<EntityFullyAnnotated> schema = (RuntimeSchema<EntityFullyAnnotated>) RuntimeSchema .getSchema(EntityFullyAnnotated.class, RuntimeEnv.ID_STRATEGY); assertTrue(schema.getFieldCount() == 2); assertEquals(schema.getFields().get(0).name, "id"); assertEquals(schema.getFields().get(0).number, 3); assertEquals(schema.getFields().get(1).name, "name"); assertEquals(schema.getFields().get(1).number, 5); assertTrue(schema.getFieldNumber("alias") == 0); assertNull(schema.getFieldByName("alias")); }
@Test public void testIt() throws Exception { RuntimeSchema<Entity> schema = (RuntimeSchema<Entity>) RuntimeSchema .getSchema(Entity.class); assertTrue(schema.getFieldCount() == 3); assertEquals(schema.getFields().get(0).name, "id"); assertEquals(schema.getFields().get(0).number, 1); assertEquals(schema.getFields().get(1).name, "name"); assertEquals(schema.getFields().get(1).number, 2); assertEquals(schema.getFields().get(2).name, "timestamp"); assertEquals(schema.getFields().get(2).number, 3); assertTrue(schema.getFieldNumber("alias") == 0); assertNull(schema.getFieldByName("alias")); }
@Test public void testTaggedAndExcludedEntity() throws Exception { RuntimeSchema<TaggedAndExcludedEntity> schema = (RuntimeSchema<TaggedAndExcludedEntity>) RuntimeSchema .getSchema(TaggedAndExcludedEntity.class); assertEquals(2, schema.getFieldCount()); assertEquals(0, schema.getFieldNumber("id")); assertNull(schema.getFieldByName("id")); assertEquals(schema.getFields().get(0).name, "alias"); assertEquals(schema.getFields().get(0).number, 2); assertEquals("name", schema.getFields().get(1).name); assertEquals(4, schema.getFields().get(1).number); assertTrue(schema.getFieldNumber("timestamp") == 0); assertNull(schema.getFieldByName("timestamp")); }
@Test public void testMuchExcludedEntity() throws Exception { RuntimeSchema<MuchExcludedEntity> schema = (RuntimeSchema<MuchExcludedEntity>) RuntimeSchema .getSchema(MuchExcludedEntity.class); assertTrue(schema.getFieldCount() == 1); assertTrue(schema.getFieldNumber("id") == 0); assertNull(schema.getFieldByName("id")); assertTrue(schema.getFieldNumber("name") == 0); assertNull(schema.getFieldByName("name")); assertEquals(schema.getFields().get(0).name, "alias"); assertEquals(schema.getFields().get(0).number, 1); assertTrue(schema.getFieldNumber("timestamp") == 0); assertNull(schema.getFieldByName("timestamp")); }
assertTrue(mappedSchema.getFieldCount() == 45);
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<>(typeClass, fields, rs.instantiator);
if (rs.getFieldCount() == 0) return rs; final ArrayList<Field<T>> fields = new ArrayList<>(rs.getFieldCount()); return fields.size() == rs.getFieldCount() ? rs : new RuntimeSchema<>(typeClass, fields, rs.instantiator);