package org.ebayopensource.turmeric.tools.codegen.fastserformat.protobuf.tag; import java.util.Map; import javax.xml.namespace.QName; /** * Generate tag numbers for a protobuf message */ public interface ProtobufTagGenerator { /** * Obtain field names that belong to a type, along with their tag numbers * @param name Name of the schema type in question * @return Given a Schema type's Qname, return the elements / attributes associated with that type and their corresponding tag number */ public Map<String, Integer> getTagsForType(QName name); /** * Returns internal information maintained by this component to generate tag numbers. Ideally, this method is not needed. It should be deprecated if possible * @return - A map of internal data */ public Map<String, Integer> getTagsToPersist(); }