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); }