/** {@inheritDoc} */ @Override public BinaryField field(String fieldName) { return ctx.createField(typeId, fieldName); }
/** {@inheritDoc} */ @Override public BinaryFieldImpl field(String fieldName) { return ctx.createField(meta.typeId(), fieldName); }
/** * Get affinity field override for type. * * @param typeId Type ID. * @return Affinity field override if any. */ @Nullable public BinaryField affinityKeyField(int typeId) { Map<Integer, BinaryField> typeIdAffFields0 = typeIdAffFields; if (typeIdAffFields0 == null) { typeIdAffFields0 = new HashMap<>(); for (Map.Entry<String, String> entry : typeNameAffFields.entrySet()) { String typeName = entry.getKey(); String affFieldName = entry.getValue(); int curTypeId = proc.typeId(typeName); BinaryField field = proc.binaryContext().createField(curTypeId, affFieldName); typeIdAffFields0.put(curTypeId, field); } typeIdAffFields = typeIdAffFields0; } BinaryField res = typeIdAffFields0.get(typeId); if (res == null) res = proc.affinityKeyField(typeId); return res; }
/** * Get affinity key field. * * @param typeId Binary object type ID. * @return Affinity key. */ public BinaryField affinityKeyField(int typeId) { // Fast path for already cached field. T1<BinaryField> fieldHolder = affKeyFields.get(typeId); if (fieldHolder != null) return fieldHolder.get(); // Slow path if affinity field is not cached yet. String name = binaryCtx.affinityKeyFieldName(typeId); if (name != null) { BinaryField field = binaryCtx.createField(typeId, name); affKeyFields.putIfAbsent(typeId, new T1<>(field)); return field; } else { affKeyFields.putIfAbsent(typeId, new T1<>(null)); return null; } }
/** {@inheritDoc} */ @Override public BinaryField field(String fieldName) { return ctx.createField(typeId, fieldName); }
/** {@inheritDoc} */ @Override public BinaryFieldImpl field(String fieldName) { return ctx.createField(meta.typeId(), fieldName); }
/** * Get affinity field override for type. * * @param typeId Type ID. * @return Affinity field override if any. */ @Nullable public BinaryField affinityKeyField(int typeId) { Map<Integer, BinaryField> typeIdAffFields0 = typeIdAffFields; if (typeIdAffFields0 == null) { typeIdAffFields0 = new HashMap<>(); for (Map.Entry<String, String> entry : typeNameAffFields.entrySet()) { String typeName = entry.getKey(); String affFieldName = entry.getValue(); int curTypeId = proc.typeId(typeName); BinaryField field = proc.binaryContext().createField(curTypeId, affFieldName); typeIdAffFields0.put(curTypeId, field); } typeIdAffFields = typeIdAffFields0; } BinaryField res = typeIdAffFields0.get(typeId); if (res == null) res = proc.affinityKeyField(typeId); return res; }
/** * Get affinity key field. * * @param typeId Binary object type ID. * @return Affinity key. */ public BinaryField affinityKeyField(int typeId) { // Fast path for already cached field. T1<BinaryField> fieldHolder = affKeyFields.get(typeId); if (fieldHolder != null) return fieldHolder.get(); // Slow path if affinity field is not cached yet. String name = binaryCtx.affinityKeyFieldName(typeId); if (name != null) { BinaryField field = binaryCtx.createField(typeId, name); affKeyFields.putIfAbsent(typeId, new T1<>(field)); return field; } else { affKeyFields.putIfAbsent(typeId, new T1<BinaryField>(null)); return null; } }