001/*
002 * SPDX-FileCopyrightText: none
003 * SPDX-License-Identifier: CC0-1.0
004 */
005
006package dev.metaschema.databind.model;
007
008import dev.metaschema.core.qname.IEnhancedQName;
009import dev.metaschema.databind.model.info.IItemValueHandler;
010import edu.umd.cs.findbugs.annotations.NonNull;
011
012/**
013 * Represents a binding of Java data to a Metaschema module construct, i.e.
014 * definition, instance, field value.
015 *
016 * @param <ITEM>
017 *          the Java type for associated bound objects
018 */
019public interface IBoundModelObject<ITEM> extends IItemValueHandler<ITEM> {
020  /**
021   * Determine if the provided XML qualified name is associated with this
022   * property.
023   *
024   * @param qname
025   *          the XML qualified name of the property being parsed
026   * @return {@code true} if the instance will handle this name, or {@code false}
027   *         otherwise
028   */
029  boolean canHandleXmlQName(@NonNull IEnhancedQName qname);
030}