001
002/*
003 * Copyright (C) 2010 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id$
006 */
007
008package org.dellroad.jibxbindings.pidf;
009
010import org.dellroad.jibxbindings.pidf.lo.GeoPriv;
011
012/**
013 * Implemented by types that can immediately nest inside a {@code <presence>} element.
014 */
015public interface Component extends Cloneable {
016
017    /**
018     * Apply visitor pattern.
019     */
020    void visit(ComponentSwitch componentSwitch);
021
022    /**
023     * Get the nested {@link GeoPriv}, if any.
024     */
025    GeoPriv getGeoPriv();
026
027    /**
028     * Clone this instance.
029     */
030    Component clone();
031}
032