package org.infinispan.objectfilter.impl;
import java.util.List;
/**
* A generic representation of some of the aspects of type metadata. This is meant to ensure decoupling from the
* underlying metadata representation (Class, Protobuf descriptor, etc).
*
* @author anistor@redhat.com
* @since 7.0
*/
public interface MetadataAdapter<TypeMetadata, AttributeMetadata, AttributeId extends Comparable<AttributeId>> {
String getTypeName();
TypeMetadata getTypeMetadata();
/**
* Transforms a String property name path into an internal representation of the path which might not be String based
* (AttributeId is an Integer in the Protobuf case).
*/
List<AttributeId> mapPropertyNamePathToFieldIdPath(String[] path);
AttributeMetadata makeChildAttributeMetadata(AttributeMetadata parentAttributeMetadata, AttributeId attribute);
boolean isComparableProperty(AttributeMetadata attributeMetadata);
}