@Override public SimpleField<?> caseSimpleSchemaField(SimpleSchemaField field) { final String fieldTypeName = field.getType(); final long signature = field.getEncodingSignature(); final FieldType<?> fieldType = this.fieldTypeRegistry.getFieldType(fieldTypeName, signature); if (fieldType == null) { final StringBuilder buf = new StringBuilder("unknown field type `" + fieldTypeName + "'"); if (signature != 0) buf.append(" with signature ").append(signature); buf.append(" for field `").append(field.getName()).append('\''); boolean foundAny = false; for (FieldType<?> otherFieldType : this.fieldTypeRegistry.getAll()) { if (otherFieldType.getName().equals(fieldTypeName)) { if (!foundAny) { buf.append(" (note: field type(s) named `").append(fieldTypeName) .append("' exist but with different signature(s): "); foundAny = true; } else buf.append(", "); buf.append(otherFieldType.getEncodingSignature()); } } if (foundAny) buf.append(')'); throw new IllegalArgumentException(buf.toString()); } return this.buildSimpleField(field, field.getName(), fieldType); }
@Override public Void caseSimpleSchemaField(SimpleSchemaField field) { final FieldType<?> fieldType = info.getConfig().getFieldTypeRegistry().getFieldType(field.getType()); ObjectType.this.simpleFieldTypes.put(field.getStorageId(), fieldType); return null; } @Override
@Override public FieldType<?> caseSimpleSchemaField(SimpleSchemaField field) { final FieldType<?> fieldType = JsckInfo.this.config.getFieldTypeRegistry().getFieldType( field.getType(), field.getEncodingSignature()); if (fieldType == null) { throw new IllegalArgumentException("no FieldType named `" + field.getType() + "'" + (field.getEncodingSignature() != 0 ? " with signature " + field.getEncodingSignature() : "") + " (used by " + field + " in schema version " + schemaVersion + ") was found in the configured FieldTypeRepository"); } assert fieldType.getEncodingSignature() == field.getEncodingSignature(); return fieldType; } });